@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-cyrillic-ext-wght-normal-Bt3rCdHq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-cyrillic-wght-normal-DBa2mnKT.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-greek-ext-wght-normal-CW-BywWH.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-greek-wght-normal-DCPER7xl.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-vietnamese-wght-normal-DvUmmjCN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-latin-ext-wght-normal-B6IpcvL2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-latin-wght-normal-CRpggXlh.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/work-sans-vietnamese-wght-normal-BKsN3ITN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/work-sans-latin-ext-wght-normal-B5dZ8C4S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/work-sans-latin-wght-normal-Bl-S9Xys.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-cyrillic-ext-wght-normal-BUDPrIko.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-cyrillic-wght-normal-HUlVHixE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-greek-wght-normal-BJJTbwTT.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-vietnamese-wght-normal-DlC-zuDL.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-latin-ext-wght-normal-QAYlOegK.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Mono Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/roboto-mono-latin-wght-normal-CZtBPCCa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fbfbfa;--surface:#fff;--surface-2:#f1f0ee;--ink:#1c1c1e;--ink-muted:#5d5d61;--ink-faint:#848489;--rule:#e7e6e3;--accent:#9e2b3f;--accent-ink:#fff;--danger:#9e2b3f;--good:#2f6b46;--rule-strong:#787874;--accent-wash:#f6e2e4;--felt:#2f4a3d;--edge:#a7a49d;--seat-1:#9e2b3f;--seat-2:#2f6b46;--seat-3:#1f5b78;--seat-4:#7a4b1e;--seat-5:#5c3f7a;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:40px;--control-size:44px;--dur-fast:.12s;--dur:.18s;--ease:cubic-bezier(.2, .8, .3, 1);--shadow-1:0 1px 2px #0000000d, 0 1px 3px #00000012;--shadow-2:0 4px 12px #0000001c;--surface-ring:inset 0 0 0 1px var(--rule);--display:"EB Garamond Variable", "EB Garamond", Georgia, serif;--body:"Work Sans Variable", "Work Sans", system-ui, sans-serif;--mono:"Roboto Mono Variable", "Roboto Mono", ui-monospace, Consolas, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#17120d;--surface:#1e1813;--surface-2:#27201a;--ink:#ece3d6;--ink-muted:#ab9d8a;--ink-faint:#857866;--rule:#38302a;--accent:#e0737d;--accent-ink:#1a0c0e;--danger:#e0737d;--good:#6cc094;--rule-strong:#7d7264;--accent-wash:#33191b;--felt:#2f4a3d;--edge:#6b5a44;--seat-1:#e0737d;--seat-2:#6cc094;--seat-3:#6fb4d8;--seat-4:#d59b5c;--seat-5:#b193d9;--shadow-1:0 1px 2px #00000073, 0 1px 3px #00000059;--shadow-2:0 4px 14px #0000008c;--surface-ring:inset 0 0 0 1px var(--rule-strong)}}:root[data-theme=dark]{--bg:#17120d;--surface:#1e1813;--surface-2:#27201a;--ink:#ece3d6;--ink-muted:#ab9d8a;--ink-faint:#857866;--rule:#38302a;--accent:#e0737d;--accent-ink:#1a0c0e;--danger:#e0737d;--good:#6cc094;--rule-strong:#7d7264;--accent-wash:#33191b;--felt:#2f4a3d;--edge:#6b5a44;--seat-1:#e0737d;--seat-2:#6cc094;--seat-3:#6fb4d8;--seat-4:#d59b5c;--seat-5:#b193d9;--shadow-1:0 1px 2px #00000073, 0 1px 3px #00000059;--shadow-2:0 4px 14px #0000008c;--surface-ring:inset 0 0 0 1px var(--rule-strong)}*{box-sizing:border-box}body{background-color:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6;overflow-x:clip}.shell{max-width:880px;margin:0 auto;padding:0 24px 80px}.topbar{padding:var(--space-3) 0;border-bottom:1px solid var(--rule);margin-bottom:var(--space-6);z-index:30;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.wordmark{font-family:var(--display);letter-spacing:-.01em;margin:0;font-size:1.5rem;font-weight:700}.topbar nav{align-items:center;gap:var(--space-1);color:var(--ink-muted);flex-wrap:wrap;flex:auto;justify-content:flex-end;min-width:0;font-size:.9rem;display:flex}@media (width<=600px){.topbar{gap:var(--space-1)}.topbar nav{flex-basis:100%;justify-content:flex-start}.topbar nav a{align-items:center;min-height:44px;display:inline-flex}}.topbar nav>:not(.mono){white-space:nowrap;flex:none}.topbar nav a{padding:var(--space-2) var(--space-3);border-radius:var(--r-pill);color:var(--ink-muted);text-decoration:none}.topbar nav a:hover{background:var(--surface-2);color:var(--ink)}.topbar nav .mono{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:5ch;max-width:12ch;overflow:hidden}.topbar nav a[aria-current=page]{background:var(--surface);color:var(--accent);text-underline-offset:3px;text-decoration:underline}.topbar nav a[aria-current=page]:hover{background:var(--surface-2)}h1,h2{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;font-weight:400}h1{margin:0 0 8px;font-size:2.2rem}h2{margin:0 0 12px;font-size:1.3rem}p{max-width:62ch}a{color:var(--accent);text-underline-offset:2px}.card{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--surface-ring), var(--shadow-1);padding:var(--space-5);margin-bottom:var(--space-4);border:0}.label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 6px;font-size:11px;font-weight:600}.muted{color:var(--ink-muted)}.mono{font-family:var(--mono);font-size:.87em}form{flex-direction:column;gap:12px;max-width:380px;display:flex}label{font-size:.9rem;font-weight:600}input[type=email],input[type=text],input:not([type]){font:inherit;border:1px solid var(--rule-strong);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);width:100%;padding:10px 12px}input[type=email]:focus-visible,input[type=text]:focus-visible,input:not([type]):focus-visible,button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:var(--accent-ink);cursor:pointer;align-self:flex-start;padding:10px 18px;font-weight:600}button:disabled{opacity:.55;cursor:not-allowed}button.quiet{color:var(--ink-muted);border-color:var(--rule-strong);background:0 0}button.quiet:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}@font-face{font-family:Google Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/google-sans-medium-latin.woff2)format("woff2")}button.google-sign-in{color:#1f1f1f;background:#fff;border:1px solid #747775;align-items:center;gap:10px;min-height:44px;padding:10px 12px;font-family:Google Sans,Arial,sans-serif;font-size:14px;font-weight:500;line-height:20px;display:inline-flex}button.google-sign-in img{flex:0 0 20px}button.google-sign-in:hover:not(:disabled){background:#f2f2f2}.sign-in-alternative{margin-top:var(--space-5)}button.danger{color:var(--danger);border-color:var(--danger);background:0 0}button.danger:hover:not(:disabled){background:var(--accent-wash)}a,button,summary,.chip,.shape,.swatch,.card,.character-list li,.stat,.seat,.modifier,.row-roll,.character-link{transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur-fast) var(--ease)}button:active:not(:disabled){transform:translateY(1px)}.notice{color:var(--ink-muted);padding:20px 0}.error,.success{padding:var(--space-3) var(--space-4);border-radius:var(--r-sm);background:var(--surface-2);border-left:3px solid;font-size:.92rem}.form-control,.form-fields input:not([type=checkbox]):not([type=radio]),.form-fields select,.form-fields textarea{min-height:var(--control-size);min-width:0;max-width:100%;font:inherit;border:1px solid var(--rule-strong);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);padding:8px 10px}.form-control:focus-visible,.form-fields :is(input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.form-fields label:has(>input:is([type=checkbox],[type=radio])){min-height:var(--control-size);align-items:center;gap:8px;display:flex}.form-fields button{overflow-wrap:anywhere;max-width:100%}.editor-dialog{border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--surface);width:min(640px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);padding:20px;overflow:auto}.editor-dialog::backdrop{background:#0006}.editor-dialog>h2{margin-top:0}.dialog-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-block:12px;display:flex}.dialog-actions button{min-height:var(--control-size)}.character-comparison>ul,.character-comparison details ul{padding:0;list-style:none}.character-comparison li{background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-sm);overflow-wrap:anywhere;margin-block:8px;padding:12px}.character-comparison dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 0;display:grid}.character-comparison dt{color:var(--ink-muted);font-size:.85rem}.character-comparison dd{margin:0}.character-comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto}@media (width<=480px){.character-comparison dl{grid-template-columns:1fr}}.error{border-color:var(--danger);color:var(--ink)}.success{border-color:var(--good);color:var(--ink)}code{font-family:var(--mono);background:var(--surface-2);border-radius:3px;padding:1px 5px;font-size:.85em}.tray-form{gap:var(--space-2);max-width:none;padding:var(--space-3) 0 var(--space-4);margin-bottom:0}.tray .tray-form{position:var(--tray-form-position,sticky);z-index:2;background:linear-gradient(to bottom, #0000, var(--bg) 12px, var(--bg));bottom:0}.tray-input-row{align-items:stretch;gap:10px;display:flex}.tray-input-row button{white-space:nowrap;align-self:stretch}.chips{flex-wrap:wrap;gap:8px;margin-bottom:0;display:flex}.chip{background:var(--surface);color:var(--ink);border:1px solid var(--rule-strong);flex-direction:column;align-items:flex-start;gap:1px;padding:7px 12px;font-size:.85rem;font-weight:600;line-height:1.3;display:flex}.chip:hover{border-color:var(--accent)}.chip-notation{color:var(--ink-muted);font-size:10.5px;font-weight:400}.result-total{font-family:var(--display);font-variant-numeric:tabular-nums;margin:2px 0 16px;font-size:3.4rem;line-height:1}.result-dice{flex-wrap:wrap;gap:7px;margin-bottom:14px;display:flex}.die{border:1px solid var(--rule-strong);border-radius:var(--r-sm);background:var(--surface-2);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;align-items:center;min-width:46px;padding:6px 4px;display:flex}.die-value{font-family:var(--mono);font-size:1.15rem;font-weight:600}.die-faces{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-muted);font-size:9.5px}.die.is-dropped{opacity:.45}.die.is-dropped .die-value{text-decoration:line-through}.die.is-max{border-color:var(--accent);color:var(--accent)}.die.is-min{border-color:var(--rule-strong)}.result-detail{margin:0}.history{margin-top:0}.history ol{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.history li{border-bottom:1px solid var(--rule);grid-template-columns:8rem 1fr auto;align-items:baseline;gap:14px;padding:9px 0;font-size:.9rem;display:grid}.history li strong{font-variant-numeric:tabular-nums}@media (width<=520px){.history li{grid-template-columns:1fr auto}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sheet-head{gap:8px;margin-bottom:20px;display:grid}.sheet-head h1,.sheet-head p{margin:0}.sheet-head .sheet-name{width:100%}.sheet-actions{top:var(--topbar-clearance,var(--topbar-height,64px));z-index:25;background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-2);grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;margin-bottom:20px;padding:8px 12px;display:grid;position:sticky}.sheet-actions>button{grid-area:1/2}.sheet-actions>[role=status]{overflow-wrap:anywhere;align-self:center}.sheet-navigation{grid-column:1/-1;min-width:0}.sheet-section-links{flex-wrap:wrap;gap:4px 12px;display:flex}.sheet-section-links a{padding:6px 0;font-size:.82rem}.sheet-section-picker{display:none}.sheet-save-reason{grid-column:1/-1;margin:0}.sheet-maintenance{border:1px solid var(--rule-strong);border-radius:var(--r-sm);margin-block:20px;padding:12px}.sheet-maintenance>summary{cursor:pointer;min-height:var(--control-size);padding:8px 0;font-weight:600}.sheet-maintenance .sheet-class{flex-wrap:wrap;margin-block:12px}.sheet-destination{scroll-margin-top:calc(var(--topbar-clearance,var(--topbar-height,64px)) + var(--sheet-actions-height,112px) + 12px)}.sheet-destination:focus{outline:2px solid var(--accent);outline-offset:3px}.sheet input,.sheet select,.sheet textarea{scroll-margin-block:calc(var(--topbar-clearance,var(--topbar-height,64px)) + var(--sheet-actions-height,112px) + 12px) 24px}.compact-editor-focus{--topbar-clearance:0px}.compact-editor-focus body:has(.sheet) .topbar{position:static}.minimal-editor-space .sheet-actions{position:static}@media (width<=700px),(height<=500px){.sheet-actions{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;padding:8px}.sheet-actions>button{grid-column:3;padding-inline:12px}.sheet-navigation{grid-area:1/2}.sheet-section-links{display:none}.sheet-section-picker{display:block}.sheet-section-picker select{width:105px}.sheet-save-reason{grid-column:1/-1}}@media (width<=350px){.sheet-actions{grid-template-columns:minmax(0,1fr) auto}.sheet-actions>button{grid-column:2}.sheet-navigation{grid-area:2/1/auto/-1}.sheet-section-picker select{width:100%}}.sheet-name{font-family:var(--display);border:0;border-bottom:1px solid var(--rule-strong);color:var(--ink);background:0 0;flex:14ch;padding:2px 0;font-size:1.9rem}.sheet-name:focus-visible{border-bottom-color:var(--accent);outline:none}.sheet-class{align-items:center;gap:8px;display:flex}.sheet-class label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:10.5px}.sheet-class select,.sheet-class input{background:var(--surface);color:var(--ink);border:1px solid var(--rule-strong);font:inherit;padding:5px 8px;font-size:.9rem}.sheet-class input{width:5ch}.stat-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:22px;display:grid}.stat{background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-sm);text-align:left;flex-direction:column;gap:3px;padding:12px 16px;display:flex}.stat-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:10.5px}.stat-value{font-family:var(--display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.9rem;line-height:1}.stat-button{cursor:pointer;font-weight:inherit}.stat-button:hover{border-color:var(--accent)}.stat-button:hover .stat-value{color:var(--accent)}.sheet-columns{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));align-items:start;gap:18px;display:grid}.sheet-columns h2{margin:0 0 12px;font-size:.95rem}.sheet-columns .card{margin-bottom:0;padding:18px 20px}.ability{border-bottom:1px solid var(--rule);grid-template-columns:1fr 5.5ch auto;align-items:center;gap:10px;padding:5px 0;display:grid}.ability:last-child{border-bottom:0}.ability label{font-size:.9rem}.ability input{background:var(--bg);color:var(--ink);border:1px solid var(--rule-strong);font:inherit;text-align:center;font-variant-numeric:tabular-nums;padding:4px 6px;font-size:.9rem}.modifier{min-width:4ch;color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 8px;font-size:.95rem}.modifier:hover{border-color:var(--accent);color:var(--accent)}.row{align-items:center;gap:8px;display:flex}.pip{width:22px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:.8rem;line-height:1}.pip.is-on,.pip.is-doubled{color:var(--accent)}.row-roll{color:var(--ink);border-radius:var(--r-sm);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;flex:auto;align-items:baseline;gap:8px;padding:5px 6px;font-size:.9rem;display:flex}.row-roll:hover{border-color:var(--accent)}.row-name{overflow-wrap:anywhere;flex:auto;min-width:0}.row-roll{min-width:0}@media (width<=600px){.ability{grid-template-columns:minmax(0,1fr) auto}.ability label{overflow-wrap:anywhere;grid-column:1/-1}.ability input{width:100%}}.row-ability{font-family:var(--mono);letter-spacing:.1em;font-size:9.5px}.row-value{font-family:var(--mono);font-variant-numeric:tabular-nums}.sheet-side{flex-direction:column;gap:18px;display:flex}.sheet-side .chips{margin-bottom:12px}.chip.is-on{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.small{font-size:.8rem}.roll-log{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.roll-log li{border-bottom:1px solid var(--rule);flex-direction:column;gap:2px;padding-bottom:10px;display:flex}.roll-log li:last-child{border-bottom:0;padding-bottom:0}.roll-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.roll-label{font-size:.9rem;font-weight:600}.roll-reason{color:var(--ink);font-weight:500}.roll-total{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.5rem;line-height:1}.stack{flex-direction:column;gap:20px;display:flex}.list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.character-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.character-list li{padding:var(--space-3) var(--space-4);border-radius:var(--r-md);box-shadow:var(--surface-ring), var(--shadow-1);background:var(--surface);border:0;align-items:center;gap:12px;display:flex}.character-link{min-width:0;color:inherit;flex-direction:column;flex:1;gap:2px;text-decoration:none;display:flex}.character-link:hover .character-name{color:var(--accent)}.character-name{font-family:var(--display);overflow-wrap:anywhere;font-size:1.1rem}.join-form{flex-direction:column;gap:.4rem;display:flex}.join-row{align-items:center;gap:.5rem;display:flex}.join-row input{text-transform:uppercase;letter-spacing:.12em;max-width:12ch}.invite-panel{border:1px solid var(--rule);border-radius:var(--r-md);flex-direction:column;gap:.5rem;padding:.9rem 1rem;display:flex}.invite-code{letter-spacing:.22em;border-radius:var(--r-md);background:var(--surface-2);-webkit-user-select:all;user-select:all;padding:.3rem .6rem;font-size:1.35rem}.campaign-picker{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.attribution{border-top:1px solid var(--rule);color:var(--ink-muted);max-width:62ch;margin-top:48px;padding-top:20px;font-size:.82rem}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.roll-hidden{color:var(--ink-muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.roll-log .result-dice{margin:4px 0 2px}.pip{width:44px;min-width:44px;min-height:44px}.row-roll,.modifier{min-height:44px}.row-ability{font-size:11px}.hp-inputs{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;display:grid}.hp-state{padding-block:8px;font-size:.9rem;display:block}.sheet input[type=number]{min-height:44px}.inventory{min-width:0;margin-top:22px}.inventory h2,.inventory h3{margin:0}.inventory h3{overflow-wrap:anywhere;font-size:1rem}.inventory-toolbar{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));align-items:end;gap:12px;display:grid}.inventory-toolbar label,.item-fields label,.inventory-coin-grid label{flex-direction:column;gap:5px;min-width:0;display:flex}.inventory input,.inventory select,.inventory textarea,.item-dialog input,.item-dialog select,.item-dialog textarea{width:100%;min-width:0;min-height:44px;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--rule-strong);border-radius:var(--r-sm);padding:8px 10px}.inventory-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:16px;padding:0;list-style:none;display:grid}.inventory-item{border:1px solid var(--rule-strong);border-radius:var(--r-sm);overflow-wrap:anywhere;min-width:0;padding:16px}.inventory-item p{margin:8px 0}.inventory-actions{flex-wrap:wrap;gap:8px;margin-block:10px;display:flex}.inventory-actions button{white-space:normal;overflow-wrap:anywhere;max-width:100%;min-height:44px}.inventory-notes{white-space:pre-wrap}.inventory-attack{border-top:1px solid var(--rule);margin-top:12px;padding-top:8px}.inventory-sources{overflow-wrap:anywhere;margin-block:16px}.inventory-sources summary{align-content:center;min-height:44px}.inventory-coins{border:1px solid var(--rule-strong);border-radius:var(--r-sm);min-width:0;padding:12px}.inventory-coin-grid{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:12px;display:grid}.item-fields{gap:12px;display:grid}.item-dialog{background:var(--surface);width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border:1px solid var(--rule-strong);border-radius:var(--r-md);padding:20px;overflow:auto}.item-dialog::backdrop{background:#00000073}.spellcasting,.resources{min-width:0;margin-top:22px}.spellcasting .list-head,.resources .list-head{flex-wrap:wrap;gap:10px}.spellcasting h2,.resources h2{margin:0}.spellcasting h3,.resources h3{overflow-wrap:anywhere;margin:0;font-size:1rem}.spellcasting label{flex-direction:column;gap:5px;min-width:0;display:flex}.spellcasting input:not([type=checkbox]),.spellcasting select{width:100%;min-width:0;min-height:44px;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--rule-strong);border-radius:var(--r-sm);padding:8px 10px}.spell-slot-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;margin-block:14px;display:grid}.resource-counter{border:1px solid var(--rule-strong);border-radius:var(--r-sm);flex-direction:column;gap:6px;min-width:0;padding:12px;display:flex}.spell-choice-row{flex-wrap:wrap;gap:10px;display:flex}:is(.spell-choice-row label,.item-dialog label:has(input[type=checkbox])){flex-direction:row;align-items:center;gap:8px;min-height:44px;display:flex}.spell-reference{overflow-wrap:anywhere}.spellcasting summary{align-content:center;min-height:44px}.item-dialog input[type=checkbox]{flex-shrink:0;width:auto;min-height:auto}.advancement-dialog label{flex-direction:column;gap:6px;min-width:0;margin-block:12px;display:flex}:is(.advancement-dialog label:has(input[type=radio]),.advancement-dialog label:has(input[type=checkbox])){flex-direction:row;align-items:center;min-height:44px}.advancement-dialog input[type=radio]{flex-shrink:0;width:auto;min-height:auto}.advancement-dialog fieldset{border:1px solid var(--rule-strong);border-radius:var(--r-sm);min-width:0;margin-block:12px}.advancement-dialog details,.class-progression{overflow-wrap:anywhere}.rest-dialog label{flex-direction:column;gap:6px;min-width:0;margin-block:12px;display:flex}.rest-dialog label:has(input[type=checkbox]){flex-direction:row;align-items:center;min-height:44px}.rest-dialog fieldset{border:1px solid var(--rule-strong);border-radius:var(--r-sm);min-width:0;margin-block:12px}.rest-dialog,.hit-dice{overflow-wrap:anywhere}.class-progression{min-width:0;margin-top:18px}.class-progression button,.class-progression summary{min-height:44px}.class-progression h2{margin-top:0}.sheet-class{flex-wrap:wrap}.seats{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:16px;display:grid}.seat{padding:var(--space-4);border-radius:var(--r-md);box-shadow:var(--surface-ring), var(--shadow-1);background:var(--surface);border:0;flex-direction:column;gap:10px;display:flex}.seat-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.seat-name{font-family:var(--display);font-size:1.1rem}.dice-tray-frame{--felt-inset:7px;padding:var(--felt-inset);border-radius:var(--r-lg);background:linear-gradient(160deg, var(--surface-2), var(--rule-strong));margin-bottom:.75rem;position:relative;box-shadow:inset 0 1px #ffffff59,0 1px 2px #0000001f}.dice-stage{background:radial-gradient(ellipse at 50% 38%, var(--felt) 0%, #22362d 62%, #1a2a23 100%);border-radius:8px;width:100%;height:clamp(260px,38vh,420px);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000059,inset 0 10px 26px #00000073}.dice-stage--throwable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.dice-stage--carrying{cursor:grabbing}.dice-stage-status{border-radius:var(--r-pill);letter-spacing:.08em;text-transform:uppercase;color:#1f232d;pointer-events:none;background:#ffffffeb;align-items:center;gap:.4em;max-width:none;margin:0;padding:.2rem .6rem;font-size:.75rem;display:flex;position:absolute;top:1rem;left:1rem;box-shadow:0 1px 3px #0000004d}.dice-stage-die{transform-origin:50%;flex:none;width:1.15em;height:1.15em}.dice-stage-status--done{color:#144426;background:#e8faecf2}@media (prefers-reduced-motion:no-preference){.dice-stage-status{animation:.16s ease-out dice-status-in}.dice-stage-die{animation:.9s linear infinite dice-status-tumble}.dice-stage-die--done{animation:.42s cubic-bezier(.2,1.5,.4,1) both dice-status-settle}}@keyframes dice-status-tumble{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dice-status-settle{0%{transform:rotate(-38deg)}to{transform:rotate(0)}}@keyframes dice-status-in{0%{opacity:0;transform:translateY(-.25rem)}}.die-colors{z-index:35;background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--r-md);width:10rem;margin:0;padding:.25rem;list-style:none;position:fixed;box-shadow:0 6px 20px #0000002e}.die-colors button{border-radius:var(--r-sm);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.5rem;padding:.3rem .4rem;display:flex}.die-colors button:hover{background:var(--surface-2)}.die-colors button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.die-colors button[aria-checked=true] .die-colors-face{box-shadow:0 0 0 2px var(--accent)}.die-colors-face{border-radius:var(--r-sm);border:1px solid var(--rule-strong);width:1.6rem;height:1.6rem;font-family:var(--mono);flex:none;place-items:center;font-size:.7rem;display:grid}.dice-shapes{border:0;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .75rem;padding:0;display:flex}.dice-shapes .label{margin-right:.25rem;padding:0}.shape{border:1px solid var(--rule-strong);border-radius:var(--r-pill);background:var(--surface);min-width:3rem;color:var(--ink-muted);font-family:var(--mono);cursor:grab;padding:.3rem .7rem;font-size:.8125rem}.shape:hover{border-color:var(--accent);color:var(--ink)}.shape--carried{cursor:grabbing;background:0 0;border-style:dashed}.shape-ghost{z-index:40;border:1px solid var(--accent);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-family:var(--mono);pointer-events:none;padding:.3rem .7rem;font-size:.8125rem;position:fixed;transform:translate(-50%,-50%);box-shadow:0 6px 16px #00000040}.shape-ghost--over{border-color:var(--accent);transform:translate(-50%,-50%)scale(1.15);box-shadow:0 10px 24px #00000059}.dice-tray-frame--receiving{outline:2px dashed var(--accent);outline-offset:2px}.dice-colors{border:0;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1rem;padding:0;display:flex}.dice-colors .label{margin-right:.25rem;padding:0}.swatch{border:1px solid var(--rule-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-muted);font:inherit;cursor:pointer;align-items:center;gap:.4rem;padding:.25rem .6rem .25rem .3rem;font-size:.8125rem;display:inline-flex}.swatch--on{border-color:var(--accent);color:var(--ink)}.swatch-face{border-radius:var(--r-sm);width:1.55rem;height:1.55rem;font-family:var(--mono);place-items:center;font-size:.6875rem;display:grid;box-shadow:inset 0 0 0 1px #0000002e}.tray-help{margin:0 0 .5rem;font-size:.875rem}.theme-seg{grid-template-columns:repeat(var(--theme-stops,3), 1fr);border:1px solid var(--rule-strong);border-radius:var(--r-pill);background:var(--surface-2);touch-action:pan-y;-webkit-user-select:none;user-select:none;flex:none;align-items:stretch;padding:2px;display:grid;position:relative}.theme-seg-handle{width:calc((100% - 4px) / var(--theme-stops,3));border-radius:var(--r-pill);background:var(--surface);transform:translateX(calc(var(--theme-at,0) * 100%));transition:transform .22s cubic-bezier(.2,.9,.25,1);position:absolute;inset:2px auto 2px 2px;box-shadow:0 1px 3px #0000002e}.theme-seg--dragging .theme-seg-handle{transition:none}.theme-seg-stop{z-index:1;min-height:40px;color:var(--ink-muted);letter-spacing:.02em;white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;padding:0 14px;font-size:.82rem;display:flex;position:relative}.theme-seg-stop input{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}.theme-seg-stop:has(input:checked){color:var(--ink);font-weight:600}.theme-seg-stop:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-pill)}@media (width<=640px){.theme-seg-stop{min-height:34px;padding:0 9px;font-size:.75rem}}.tray{position:static}body:has(.tray) .topbar{position:static}.tray{--tray-w:min(1440px, calc(100dvw - 48px));width:var(--tray-w);margin-inline:calc((100% - var(--tray-w)) / 2)}body:has(.tray) .topbar{--tray-w:min(1440px, calc(100dvw - 48px));width:var(--tray-w);margin-inline:calc((100% - var(--tray-w)) / 2)}.tray{grid-template:"bag head earlier"min-content"bag table earlier"minmax(0,1fr)/200px minmax(460px,1fr) 280px;align-items:start;gap:0 28px;display:grid}.tray p{max-width:none}.tray-head{flex-wrap:wrap;grid-area:head;align-items:baseline;gap:4px 16px;margin-bottom:8px;display:flex}.tray-head h1{margin:0}.tray-head p{flex:20ch;margin:0;font-size:.9rem}.tray-table{flex-direction:column;grid-area:table;min-width:0;display:flex}.tray .dice-stage{aspect-ratio:4/3;height:auto;min-height:300px;max-height:var(--tray-felt-height,calc(100dvh - 232px))}.tray-bag{flex-direction:column;grid-area:bag;gap:20px;max-height:calc(100dvh - 32px);margin:-2px;padding:2px;display:flex;position:sticky;top:16px;overflow-y:auto}.tray-bag .dice-shapes,.tray-bag .chips{flex-flow:column;align-items:stretch;gap:6px;margin:0}.tray-bag .label{margin:0 0 6px;display:block}.tray-bag .shape{text-align:center;min-width:0}.tray-bag .chip{align-items:flex-start}.tray-bag .swatch{justify-content:flex-start}.tray-quick .label{margin-bottom:0}.tray-quick-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.tray-quick-head button{align-self:auto;padding:2px 6px}.quick-empty{margin:0;font-size:.85rem}button.link{color:var(--accent);font:inherit;background:0 0;border:0;align-self:auto;padding:0;font-weight:600;text-decoration:underline}.quick-editor{border:1px solid var(--rule);border-radius:var(--r-md);background:var(--surface);width:min(520px,100vw - 32px);max-height:min(640px,100dvh - 48px);color:var(--ink);padding:24px;overflow-y:auto}.quick-editor::backdrop{background:#00000073}.quick-editor h2{margin:0 0 4px}.quick-editor>.muted{margin:0 0 16px;font-size:.9rem}.quick-editor-rows{flex-direction:column;gap:10px;margin:0 0 16px;padding:0;list-style:none;display:flex}.quick-editor-row{grid-template-columns:2fr 1.4fr auto;align-items:center;gap:8px;display:grid}.quick-editor-row input{min-width:0}.quick-editor-row button{align-self:stretch;padding:8px 12px}.quick-editor-rows .error{margin:4px 0 0;font-size:.85rem}.chip--broken{opacity:.55;cursor:not-allowed;border-style:dashed}.quick-editor-refusal{min-height:1.2em;margin:0 0 8px;font-size:.85rem}.quick-editor-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quick-editor-gap{flex:auto}@media (width<=520px){.quick-editor-row{grid-template-columns:1fr 1fr}.quick-editor-row button{grid-column:1/-1}}.tray-bag .dice-colors{flex-wrap:nowrap;grid-template-columns:1fr 1fr;gap:6px;margin:0;display:grid}.tray-bag .dice-colors .label{grid-column:1/-1;margin-right:0}.tray-bag .swatch{gap:.3rem;min-width:0;padding:.25rem .4rem .25rem .25rem}.tray-bag .swatch-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tray-help>summary{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);cursor:pointer;padding:2px 0;font-size:11px;font-weight:600}.tray-help>summary:hover{color:var(--ink)}.notation{columns:2;column-gap:28px;margin:6px 0 0;font-size:.82rem}.notation>div{break-inside:avoid;align-items:baseline;gap:8px;padding:2px 0;display:flex}.notation dt{flex:none}.notation dd{color:var(--ink-muted);margin:0}.tray-rolls{flex-direction:column;grid-area:earlier;gap:20px;max-height:calc(100dvh - 32px);display:flex;position:sticky;top:16px;overflow-y:auto}.tray-rolls>div:empty{display:none}.tray .history li{grid-template-columns:1fr auto;gap:4px 12px}.tray .history li .mono:nth-child(2){color:var(--ink-muted);grid-column:1/-1;font-size:.82rem}@media (width<=1199px){.tray{grid-template:"bag head"min-content"bag table"minmax(0,1fr)"earlier earlier"/190px minmax(0,1fr)}.tray-bag{max-height:none;position:static;overflow-y:visible}.tray-rolls{max-height:none;margin-top:28px;position:static;overflow-y:visible}.tray .history li{grid-template-columns:8rem 1fr auto;gap:14px}.tray .history li .mono:nth-child(2){color:inherit;font-size:inherit;grid-column:auto}}@media (width<=899px){.tray{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));grid-template-rows:repeat(4,min-content);grid-template-columns:minmax(0,1fr);grid-template-areas:"head""table""earlier""bag"}.tray .dice-stage{aspect-ratio:1;max-height:none}.tray .tray-form{padding:10px 24px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--rule);position:fixed;inset:auto 0 0}.tray-form .tray-help[open]>.notation{max-height:40dvh;overflow-y:auto}.tray-form .notation{columns:1}.tray-bag{max-height:none;margin-top:24px;position:static;overflow-y:visible}.tray-bag .dice-shapes,.tray-bag .dice-colors,.tray-bag .chips{flex-flow:wrap}}.dice-picks{inset:var(--felt-inset);border-radius:var(--r-md);pointer-events:none;position:absolute;overflow:hidden}.dice-marquee{border-radius:var(--r-sm);background:#ffffff1a;border:1px solid #ffffffbf;position:absolute}.board{aspect-ratio:4/3;border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--surface-2);width:100%;position:relative;overflow:hidden}.board-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.board-layer{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scene-input--active{pointer-events:auto;touch-action:none;cursor:crosshair}.scene-controls{border-top:1px solid var(--rule-strong);padding-top:12px}.scene-controls h3,.scene-controls h4{margin:0;font-size:1rem}.scene-save-status{overflow-wrap:anywhere;min-height:3em}.scene-editor,.scene-recovery{min-width:0}.scene-edit-fields{border:0;min-width:0;margin:0;padding:0}.scene-controls textarea{resize:vertical;width:100%;max-width:100%;min-height:70px}.scene-controls p{overflow-wrap:anywhere}.scene-note-body{white-space:pre-wrap}.scene-recovery{gap:8px;display:grid}.map-controls-body:has(.scene-editor)>:not(.scene-controls){display:none}.scene-controls--editing>:not(.scene-editor):not(.scene-recovery):not(dialog):not([role=alert]){display:none}.scene-controls--editing{border:0;padding-top:0}.map-controls.map-controls--scene-compact{top:calc(var(--scene-viewport-top,0px) + 4px);z-index:60;position:fixed;right:8px}.map-controls.map-controls--scene-compact>summary{min-height:32px;padding-block:4px}.map-controls--scene-compact .map-controls-body{max-height:max(44px, calc(var(--scene-viewport-height,100dvh) - 44px));padding:6px}.map-controls--scene-minimal>summary{display:none}.map-controls--scene-minimal .map-controls-body{max-height:max(44px, calc(var(--scene-viewport-height,100dvh) - 8px))}.map-move-notice{z-index:34;border-radius:var(--r-sm);background:var(--surface);width:min(32ch,100% - 84px);max-height:calc(100dvh - 270px);color:var(--ink);box-shadow:var(--shadow-2);padding:10px;font-size:.85rem;position:absolute;top:152px;left:72px;overflow-y:auto}.map-move-notice p{margin:0 0 6px}.map-move-notice:not(:has(button)){pointer-events:none}.map-move-notice button{min-height:var(--control-size);margin:3px}@media (height<=600px){.map-move-notice:has(button){flex-wrap:wrap;align-items:center;gap:6px;width:min(640px,100% - 84px);max-height:calc(100% - 32px);display:flex;top:8px}.map-move-notice:has(button) p{flex:250px;margin:0}.map-move-notice:not(:has(button)){top:auto;bottom:112px}}.board-canvas:active{cursor:grabbing}.board-canvas--token{cursor:pointer}.board-canvas--ping,.board-canvas--ruler,.board-canvas--circle,.board-canvas--cone,.board-canvas--line,.board-canvas--rectangle{cursor:crosshair}.map-controls summary,.map-controls button,.board-zoom button,.map-aid-clear{touch-action:manipulation}.map-aid-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden}.map-aid-cells{fill:var(--accent);fill-opacity:.25;stroke:var(--accent);stroke-opacity:.65;stroke-width:1px}.map-aid-outline{fill:none;stroke:var(--ink);stroke-width:2px;filter:drop-shadow(0 0 2px var(--surface))}.map-aid-line{stroke:var(--ink);stroke-width:3px;stroke-dasharray:6 4;filter:drop-shadow(0 0 2px var(--surface))}.map-aid-origin{fill:var(--surface);stroke:var(--ink);stroke-width:2px}.map-aid-cursor{fill:none;stroke:var(--ink);stroke-width:3px;stroke-dasharray:4 3;filter:drop-shadow(0 0 2px var(--surface))}.map-ping{fill:none;stroke:var(--ink);stroke-width:3px;filter:drop-shadow(0 0 2px var(--surface));animation:.25s ease-out map-ping-in}.map-ping--own{stroke:var(--accent)}@keyframes map-ping-in{0%{opacity:.25}to{opacity:1}}@media (prefers-reduced-motion:reduce){.map-ping{animation:none}}.map-aid-hud{z-index:26;background:var(--surface);max-width:calc(100% - 24px);color:var(--ink);border-radius:var(--r-sm);box-shadow:var(--shadow-2);align-items:center;gap:6px;padding:6px;font-size:.8rem;display:flex;position:absolute;top:104px;left:12px}.map-aid-readout{pointer-events:none}.map-aid-clear{min-height:var(--control-size);color:var(--ink);flex:none}.map-ping-notice{z-index:26;background:var(--surface);max-width:calc(100% - 84px);color:var(--ink);border-radius:var(--r-sm);box-shadow:var(--shadow-2);pointer-events:none;margin:0;padding:8px;font-size:.8rem;position:absolute;bottom:180px;left:72px}.board-canvas[class*=reveal],.board-canvas[class*=cover]{cursor:crosshair}.board:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.board-tools,.map-tool-choices,.map-fog-actions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}body:has(.table) .shell{flex-direction:column;max-width:none;height:100dvh;padding:0;display:flex;overflow:hidden}body:has(.table) .shell>main{flex-direction:column;flex:1 1 0;min-height:0;display:flex}body:has(.table) .topbar{padding-inline:var(--space-4);margin-bottom:0;position:static}.table{flex:1 1 0;min-width:0;min-height:0;position:relative;overflow:hidden}.table-board{background:var(--edge);flex-direction:column;min-width:0;min-height:0;padding-left:64px;display:flex;position:absolute;inset:0}.table-board .board{aspect-ratio:auto;background:var(--edge);border:0;border-radius:0;flex:1 1 0;min-height:0}.board-empty{padding:var(--space-5);background:var(--surface);border-radius:var(--r-md);max-width:min(44ch,100% - 32px);box-shadow:inset 0 0 0 1px var(--rule-strong), var(--shadow-2);text-align:center;margin:auto}.board-zoom{gap:var(--space-1);display:flex;position:absolute;bottom:112px;right:12px}.board-zoom button{min-width:var(--control-size);min-height:var(--control-size);padding:var(--space-2);background:var(--surface);box-shadow:var(--shadow-2);align-self:auto}.table-title{z-index:18;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);min-height:var(--control-size);background:var(--surface);border-radius:var(--r-md);width:fit-content;max-width:calc(100% - 84px);box-shadow:inset 0 0 0 1px var(--rule-strong), var(--shadow-2);display:flex;position:absolute;top:8px;left:72px;right:12px}.table-title h1{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.05rem;overflow:hidden}.table-title a{padding:var(--space-2);flex:none;font-size:.85rem}.map-controls{z-index:32;background:var(--surface);border-radius:var(--r-md);max-width:calc(100% - 24px);box-shadow:inset 0 0 0 1px var(--rule-strong), var(--shadow-2);position:absolute;top:64px;right:12px}.map-controls>summary{min-height:var(--control-size);cursor:pointer;padding:10px 16px;font-weight:600}.map-controls-body{overscroll-behavior:contain;gap:12px;width:310px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 290px);padding:12px;overflow-y:auto}@media (height<=600px){.map-controls-body{max-height:max(96px,100dvh - 290px)}}.map-controls-body button{min-height:var(--control-size)}.map-tool-choices button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.map-active-tool{z-index:18;background:var(--surface);border-radius:var(--r-sm);width:270px;max-width:calc(100% - 230px);box-shadow:var(--shadow-2);align-items:center;gap:10px;padding:8px;font-size:.8rem;display:flex;position:absolute;top:64px;left:72px}.map-active-tool>span:first-child{white-space:nowrap;flex:none}.map-active-tool>[role=status]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=600px){.map-active-tool{gap:6px;padding:6px}.map-active-tool>span:first-child{font-size:0}.map-active-tool strong{font-size:.8rem}}.table--map-first .dock-panel .roll-secondary{flex:none}.roll-secondary>summary{cursor:pointer;min-height:var(--control-size);padding-block:8px;font-weight:600}.table--map-first .dock-panel .table-rail-log{order:-1}.token-coordinates,.map-dimensions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.token-editor h3{margin:0;font-size:1rem}.map-controls label{display:block}.map-controls input,.map-controls select,.map-library input,.map-library select{max-width:100%}.map-library-list{gap:16px;padding:0;list-style:none;display:grid}.map-library-item{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--surface-ring);padding:16px}.map-library-item>summary{min-height:var(--control-size);cursor:pointer;padding:8px 0;font-weight:600}.map-library-item>div{padding-top:12px}.board-error,.board-image-status{z-index:34;background:var(--surface);border-radius:var(--r-md);max-width:min(44ch,100% - 84px);box-shadow:var(--shadow-2);padding:12px;position:absolute;top:64px;left:72px}.board-error p{margin:0 0 8px}.board-image-status{z-index:34;top:auto;bottom:300px}.map-quick-rolls{z-index:31;left:72px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));position:absolute}.table--map-first .map-quick-rolls .hotbar{width:100%;max-width:none;position:static;translate:none}.table--map-first .hotbar-slot,.table--map-first .hotbar-secret,.table--map-first .hotbar-edit{min-width:var(--control-size);min-height:54px}.map-dice-tray{z-index:24;width:min(280px,100% - 84px);max-height:240px;position:absolute;bottom:112px;left:72px;overflow:auto}.table--map-first .dock-panel .dice-stage{height:160px}.map-roll-result{background:var(--surface);border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--rule-strong), var(--shadow-2);margin-bottom:6px;padding:10px 12px}.map-roll-result-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.map-roll-result .roll-total{margin:0;font-size:1.6rem}.map-roll-result .result-dice{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.map-roll-result p{overflow-wrap:anywhere;margin:4px 0}.table--drawer-open .map-roll-result{max-height:inherit;margin-bottom:0;overflow:auto}.table.table--map-first .dice-dock--drawer{z-index:30;width:48px;display:block;position:absolute;top:8px;bottom:112px;left:8px}.table--map-first .dock-gutter{width:48px;height:100%;padding-block:4px}.table--map-first .dock-toggle,.table--map-first .dock-gear,.table--map-first .gutter-shapes .shape{min-width:var(--control-size);min-height:var(--control-size)}.table.table--map-first .dock-panel{width:min(340px,100vw - 84px);margin:0;position:absolute;top:56px;bottom:0;left:64px;overflow:auto}.table--map-first .dice-dock--shut .dock-panel{display:none}.table--map-first .table-rail-log{flex:1 1 0;min-height:80px;overflow-y:auto}.table-roster summary{min-height:var(--control-size);cursor:pointer;padding-block:8px}.table-roster ul{padding-left:20px}.dice-color-controls{background:var(--surface);border-radius:var(--r-sm);margin-top:6px;padding:6px}.dice-color-controls>summary{min-height:var(--control-size);cursor:pointer;padding:8px}.dice-color-slots{flex-wrap:wrap;gap:6px;display:flex}.dice-color-slots button{min-height:var(--control-size)}.map-dice-stage-host{z-index:20;pointer-events:none;position:absolute}.map-dice-stage-host[data-surface=tray]{z-index:31}.map-dice-stage-host .dice-tray-frame{height:100%;margin:0}.map-dice-stage-host .dice-stage{height:100%}.map-dice-stage-host .dice-tray-frame:not(.dice-tray-frame--passive) .dice-stage{pointer-events:auto}.map-dice-stage-host .dice-tray-frame--map{--felt-inset:0px;box-shadow:none;background:0 0;border-radius:0;padding:0}.map-dice-stage-host .dice-tray-frame--map .dice-stage{box-shadow:none;background:0 0;border-radius:0}.map-dice-stage-host .dice-stage-status{pointer-events:none}.dice-tray-placeholder{flex:none;height:180px}.map-dice-actions{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--surface-ring);margin-bottom:6px;padding:6px}.map-dice-buttons{flex-wrap:wrap;gap:6px;display:flex}.map-dice-buttons button{min-height:var(--control-size);flex:1 1 0;min-width:0;padding:8px;font-size:.8rem;line-height:1.2}.map-dice-buttons button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.map-dice-actions p{margin:6px 0 0}.map-dice-guide{background:var(--surface);border-radius:var(--r-sm);width:fit-content;max-width:calc(100% - 12px);box-shadow:var(--surface-ring);pointer-events:none;margin:0;padding:6px 8px;font-size:.8rem;position:absolute;top:6px;left:6px;right:6px}.dice-location label{min-height:var(--control-size);align-items:center;gap:8px;margin-right:20px;display:inline-flex}.table .dice-dock{z-index:20;left:var(--space-3);top:var(--space-3);bottom:var(--space-3);align-items:stretch;gap:var(--space-2);min-height:0;display:flex;position:absolute}.dock-gutter,.dice-dock .table-rail{background:var(--surface);border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--rule-strong), var(--shadow-2)}.table-head{align-items:center;gap:var(--space-2);min-width:0;padding-bottom:var(--space-2);border-bottom:1px solid var(--rule);flex:none;display:flex;position:relative}.table-head h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1rem;overflow:hidden}.table-settings{flex:none;margin-left:auto;font-size:.85rem}.dock-gutter{align-items:center;gap:var(--space-2);width:56px;padding:var(--space-2) 0;overscroll-behavior:contain;flex-direction:column;flex:none;display:flex;overflow-y:auto}.dock-toggle,.dock-gear{border-radius:var(--r-sm);min-width:40px;min-height:32px;box-shadow:none;color:var(--ink-muted);background:0 0;border:0;flex:none;place-items:center;padding:0;font-size:1.1rem;line-height:1;display:grid;position:relative}.dock-toggle:hover,.dock-gear:hover{background:var(--surface-2);color:var(--ink)}.dock-gear{margin-top:auto}.dock-unseen{border-radius:var(--r-pill);background:var(--accent);min-width:18px;color:var(--accent-ink);text-align:center;padding:0 4px;font-size:.7rem;font-weight:600;line-height:18px;position:absolute;top:-2px;right:-2px}.gutter-shapes{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.gutter-shapes .shape{min-width:40px;min-height:32px;padding:0;font-size:.85rem}.dice-dock .notice{flex:none;margin:0}.skip-to-map{z-index:40;top:var(--space-3);left:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule-strong), var(--shadow-2);clip-path:inset(50%);text-decoration:none;position:absolute}.skip-to-map:focus-visible{clip-path:none;outline:2px solid var(--accent);outline-offset:2px}.seats{flex:none;display:block}.seats>summary{cursor:pointer;padding:var(--space-1) var(--space-2);border:1px solid var(--rule-strong);border-radius:var(--r-pill);width:max-content;min-height:24px;color:var(--ink-muted);align-items:center;font-size:.8rem;list-style:none;display:flex}.seats>summary::-webkit-details-marker{display:none}.seats>summary:hover{background:var(--surface-2);color:var(--ink)}.seats-popover{top:calc(100% + var(--space-2));z-index:25;width:max-content;max-width:min(34ch,100%);padding:var(--space-3);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--surface-ring), var(--shadow-2);position:absolute;left:0}.seats-popover p{margin:var(--space-2) 0 0;max-width:none}.dice-dock{align-items:stretch;gap:var(--space-2);min-height:0;display:flex}.dice-dock .table-rail{width:368px;min-height:0;padding:var(--space-3);gap:var(--space-2);flex-direction:column;flex:0 0 368px;margin:0;display:flex}.dice-dock--shut .dock-panel{display:none}.table-rail .dice-stage{flex:none;height:clamp(170px,20vh,240px)}.table-rail-log{flex:1 1 0;min-height:0;overflow-y:auto}.table-rail-bar{gap:var(--space-2);flex-direction:column;flex:none;padding-bottom:0;display:flex}.hotbar{align-items:stretch;gap:var(--space-2);padding:var(--space-2);border-radius:var(--r-md);background:var(--surface);box-shadow:inset 0 0 0 1px var(--rule-strong), var(--shadow-2);display:flex}.table .hotbar{z-index:22;bottom:var(--space-3);max-width:calc(100vw - 586px);position:fixed;left:calc(50% + 163px);translate:-50%}.table .dice-dock--shut .hotbar{max-width:calc(100vw - 210px);left:calc(50% - 25px)}.hotbar-slots{align-items:stretch;gap:var(--space-1);overscroll-behavior-x:contain;min-width:0;display:flex;overflow-x:auto}.hotbar-slot,.hotbar-secret,.hotbar-edit{border:1px solid var(--rule-strong);background:var(--surface-2);box-shadow:none;color:var(--ink)}.hotbar-slot:hover:not(:disabled),.hotbar-secret:hover,.hotbar-edit:hover{background:var(--surface);border-color:var(--ink-muted)}.hotbar-slot{min-width:72px;min-height:44px;padding:var(--space-1) var(--space-4) var(--space-1) var(--space-2);text-align:left;flex-direction:column;flex:none;justify-content:center;gap:2px;display:flex;position:relative}.hotbar-slot-label{white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:600;overflow:hidden}.hotbar-slot-notation{color:var(--ink-muted);white-space:nowrap;font-size:.7rem}.hotbar-key{color:var(--ink-muted);font-size:.65rem;font-weight:600;position:absolute;top:2px;right:4px}.hotbar-slot--broken .hotbar-slot-notation{color:var(--danger)}.hotbar-slot--empty{border:1px dashed var(--rule-strong);min-width:44px;box-shadow:none;color:var(--ink-muted);background:0 0;justify-content:center;align-items:center;font-size:1.1rem}.hotbar-secret,.hotbar-edit{flex:none;align-self:center;min-height:32px;font-size:.8rem}.hotbar-secret--on,.hotbar-secret--on:hover{background:var(--danger);color:var(--accent-ink);border-color:var(--danger)}.hotbar--secret{box-shadow:inset 0 0 0 2px var(--danger), var(--shadow-2)}.dice-settings{max-width:44ch}.dice-keys{align-items:center;gap:var(--space-2);margin-top:var(--space-4);min-height:24px;font-size:.9rem;display:flex}.dice-settings .notation{margin-top:var(--space-4)}@media (width<=600px){body:has(.table) .topbar{padding-inline:12px}.map-controls{top:64px;right:8px}.map-controls-body{max-height:calc(100dvh - 320px)}.map-dice-tray{width:160px;max-height:180px;bottom:104px}.table--map-first .dock-panel .dice-stage{height:105px}.table--map-first .dock-panel .dice-stage-status{letter-spacing:0;font-size:.65rem;top:5px;left:5px}.map-quick-rolls{left:8px;right:8px;bottom:max(8px, env(safe-area-inset-bottom))}.table--map-first .map-quick-rolls .hotbar{gap:6px;padding:6px}.table--map-first .hotbar-slot{min-width:58px}.table--map-first .hotbar-edit{padding:6px}.table--map-first{--drawer-height:min(42dvh, 320px, max(100px, calc(100dvh - 420px)))}.table.table--map-first .dock-panel{width:calc(100vw - 16px);height:var(--drawer-height);padding:12px;top:auto;bottom:0;left:0}.table--drawer-open .map-dice-tray{bottom:calc(112px + var(--drawer-height) + 8px);max-height:100px}.board-zoom{bottom:104px;right:8px}.board-zoom button{min-width:40px;padding:6px}}@media (height<=600px){.table--map-first .dock-panel .dice-stage{height:90px}.map-dice-tray{max-height:150px}.map-controls-body{max-height:calc(100dvh - 210px)}.table--drawer-open .map-dice-tray{max-height:56px}}@media (width>=601px) and (height<=600px){.map-controls{top:8px}.table-title{max-width:calc(100% - 252px)}}
