@font-face{font-family:Rye;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rye-latin-ext-400-normal-DWskwnEk.woff2) format("woff2"),url(/assets/rye-latin-ext-400-normal-CJizeAep.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Rye;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rye-latin-400-normal-CnIDrDaJ.woff2) format("woff2"),url(/assets/rye-latin-400-normal-CPBiwIfN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-B3hZxag_.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-ZyMXPjaT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-DvQQgHTq.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CJUKFyLa.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BFiUPp6R.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DLynVohM.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-DxDDqVQb.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-uwM7KshN.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-Dm_PoFIZ.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-O6-GRVqx.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-italic-DBsh8nVG.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-italic-SJcm5b_5.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-italic-Hqp7V8BW.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-italic-DeJHPkln.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-italic-O7hug9tS.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-italic-DKYVknFa.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-italic-BE4uS8v8.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-italic-CokwzHkU.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-italic-D4A3AD7-.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-italic-oc-n-I2i.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-6-AWF9yE.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-BZFL66GJ.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-DqTcxLwU.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-C8N-B5AP.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D7hk9wLv.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-BifMsNUA.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-5raxGPWx.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-C5zKQMXr.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-rgB1DpUr.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DeXYNBV7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-CcGNpAf3.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-zA2EAszW.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-700-normal-p0--0TT5.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-700-normal-XGhtXPWC.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-vietnamese-700-normal-D7b4BDym.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-700-normal-bCyYmTho.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-ext-700-normal-ChDdxD0n.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-700-normal-DCf1kqJT.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-QW6cfU13.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-DP9fNao9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-ext-700-italic-5DKqJ6-g.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-700-italic-BjfoUoKI.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-700-italic-iaszrB3x.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-700-italic-DriPtx6o.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-vietnamese-700-italic-DT-WqBEN.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-700-italic-CsN7yVCq.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-ext-700-italic-ClvfWb4L.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-700-italic-DhiNADza.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-italic-B8pq7q64.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-700-italic-CRfxfWIN.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--mustard: #e2a23c;--mustard-2: #d9962f;--mustard-deep: #b97b25;--side: #eaa83e;--side-2: #e19b30;--ink: #2e1a47;--ink-2: #4b2f72;--ink-soft: rgba(46, 26, 71, .55);--paper: #f6f0e1;--paper-2: #efe6d0;--rule: #d8cbb0;--title: #a8391f;--map-blue: #6fa8dc;--danger: #a8391f;--paper-hi: #fffaf0;--sec-bg: #fbf7ec;--shadow-c: #2e1a47;--title-shadow: rgba(168, 57, 31, .55);--feed-bg: rgba(255, 236, 196, .35);--action-bg: #f1e6ff;--error-bg: #ffe2d6;--haze: rgba(120, 70, 20, .28);--backdrop: rgba(46, 26, 71, .35);--die-ink: #2e1a47;--display: "Rye", "Rockwell", serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--shadow-hard: -6px 6px 0 var(--shadow-c);--shadow-sm: -3px 3px 0 var(--shadow-c);color-scheme:light}:root[data-theme=parchment]{--mustard: #cbb38a;--mustard-2: #bea47a;--mustard-deep: #a48b62;--side: #d8c39a;--side-2: #cbb48a;--ink: #3b2a1a;--ink-2: #5a4330;--ink-soft: rgba(59, 42, 26, .58);--paper: #fbf6ea;--paper-2: #f1e8d4;--paper-hi: #fffdf7;--sec-bg: #fdf9ef;--rule: #ddd0b6;--title: #7a2e1a;--title-shadow: rgba(122, 46, 26, .35);--shadow-c: #3b2a1a;--feed-bg: rgba(255, 250, 235, .45);--action-bg: #efe4f7;--haze: rgba(80, 60, 30, .22);--backdrop: rgba(59, 42, 26, .35)}:root[data-theme=moss]{--mustard: #7d9a57;--mustard-2: #6f8b4c;--mustard-deep: #5a7340;--side: #9bb46c;--side-2: #8ba65c;--ink: #1f2a17;--ink-2: #34452a;--ink-soft: rgba(31, 42, 23, .6);--paper: #f3f0e2;--paper-2: #e7e2cc;--paper-hi: #fbf9ef;--sec-bg: #f8f6ec;--rule: #d2cdb2;--title: #8a3b1d;--title-shadow: rgba(31, 42, 23, .35);--shadow-c: #1f2a17;--feed-bg: rgba(240, 248, 220, .35);--action-bg: #e6efd6;--haze: rgba(20, 40, 10, .25);--backdrop: rgba(31, 42, 23, .4)}:root[data-theme=midnight]{color-scheme:dark;--mustard: #2b2740;--mustard-2: #25213a;--mustard-deep: #1b1830;--side: #262238;--side-2: #211d33;--ink: #ece4ff;--ink-2: #c9b8f5;--ink-soft: rgba(236, 228, 255, .55);--paper: #1d1a2b;--paper-2: #2a2540;--paper-hi: #332d4d;--sec-bg: #221e33;--rule: #3b3556;--title: #f2a65a;--title-shadow: rgba(0, 0, 0, .6);--danger: #ff8a7a;--shadow-c: #07060d;--feed-bg: rgba(255, 255, 255, .05);--action-bg: #2f2650;--error-bg: #4a2228;--haze: rgba(0, 0, 0, .35);--backdrop: rgba(0, 0, 0, .55);--map-blue: #4f7fae}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--mustard);color:var(--ink);font:12px/1.35 var(--mono);overflow:hidden;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--ink-2);outline-offset:2px}.muted{color:var(--ink-soft)}.app{display:grid;grid-template-columns:268px 1fr;height:100dvh}.sidebar{background:var(--side);border-right:3px solid var(--ink);display:flex;flex-direction:column;min-height:0;z-index:20;position:relative}.side-head{display:flex;align-items:center;padding:10px 12px 6px;border-bottom:2px solid var(--ink)}.table-name{font:400 28px/1 var(--display);letter-spacing:1px;margin:0;color:var(--ink);text-shadow:-2px 2px 0 var(--title-shadow);cursor:default;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.side-close,.side-toggle{display:none}.side-section{padding:7px 12px;border-bottom:2px solid var(--ink);position:relative}.side-label{display:block;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:5px}.side-label.as-button{background:none;border:0;padding:0;display:flex;gap:6px}.tools-row{display:flex;align-items:center;justify-content:space-between}.tools-row .side-label{margin:0}.tools{display:flex;gap:5px}.tool-btn{width:27px;height:25px;display:grid;place-items:center;background:var(--paper);border:2px solid var(--ink);box-shadow:-2px 2px 0 var(--shadow-c);padding:0;transition:transform .08s,box-shadow .08s}.tool-btn:hover,.tool-btn.on{background:var(--paper-hi)}.tool-btn:active,.tool-btn.on{transform:translate(-1px,1px);box-shadow:-1px 1px 0 var(--shadow-c)}.setting{display:flex;align-items:center;gap:8px;font-weight:700;font-size:11px;margin:4px 0}.setting>span:first-child{min-width:52px}.setting select,.setting input:not([type=checkbox]):not([type=color]){flex:1;min-width:0;background:var(--paper);border:2px solid var(--ink);padding:2px 5px;font-weight:400}.setting input[type=color]{width:40px;height:22px;border:2px solid var(--ink);padding:0;background:var(--paper)}.check-setting span{min-width:0!important}.setting-note{font-size:10px;color:var(--ink-soft);margin:-2px 0 6px}.setting-buttons{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.link{background:none;border:0;text-decoration:underline;padding:0 0 0 6px;font-size:10px}.feed-section{flex:1;min-height:0;display:flex;flex-direction:column;padding-right:0;border-bottom:0}.feed{list-style:none;margin:0;padding:0 10px 8px 0;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:4px;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}.feed-line{font-size:10.5px;padding:4px 6px;border-left:3px solid var(--ink-soft);background:var(--feed-bg)}.feed-line.error{border-left-color:var(--danger);background:var(--error-bg)}.feed-tag{color:var(--ink-soft);font-weight:700}.feed-card{background:var(--paper);border:2px solid var(--ink);box-shadow:-2px 2px 0 var(--shadow-c);padding:4px 7px 5px;font-size:11px;margin-left:2px;overflow-wrap:anywhere}.feed-card.action{background:var(--action-bg)}.feed-time{font-size:9.5px;color:var(--ink-soft)}.feed-card code{font-family:inherit}.roll-total{font-size:12.5px}.roll-label{font-style:italic}.breakdown s{color:var(--ink-soft)}.command{display:flex;align-items:center;gap:6px;margin:6px 10px 10px;border:2px solid var(--ink);background:var(--paper);box-shadow:-2px 2px 0 var(--shadow-c);padding:0 6px}.command .prompt{font-weight:700}.command input{flex:1;min-width:0;border:0;background:transparent;padding:6px 0;outline:none;font-size:11.5px}.popover{position:absolute;top:calc(100% + 4px);left:10px;right:-180px;max-width:330px;z-index:50;background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow-hard);padding:10px}.menu{display:flex;flex-direction:column}.menu-label,.tray-label{font-size:9.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-soft);margin:2px 0 4px}.menu-item{text-align:left;background:none;border:0;padding:6px;font-weight:600;text-decoration:none;color:var(--ink)}.menu-item:hover{background:var(--paper-2)}.menu-sep{border-top:2px dashed var(--rule);margin:4px 0}.dice-tray .tray-row{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.die-btn{position:relative;min-width:40px;padding:6px 4px;background:var(--paper-hi);border:2px solid var(--ink);box-shadow:-2px 2px 0 var(--shadow-c);font-weight:700}.die-btn.small{min-width:34px;padding:3px;font-size:10.5px}.die-btn:active{transform:translate(-1px,1px);box-shadow:-1px 1px 0 var(--shadow-c)}.badge{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 3px;margin-left:4px;border:1.5px solid var(--ink);background:var(--paper);font-size:9.5px;font-weight:700;line-height:1}.die-btn .badge{position:absolute;top:-8px;right:-8px;margin:0;background:var(--title);color:#fff;border-color:var(--ink)}.tray-mod{display:flex;align-items:center;gap:6px;font-weight:700;margin:4px 0}.tray-expr{border:2px dashed var(--rule);padding:6px;margin:6px 0;min-height:30px;font-weight:600}.tray-actions{display:flex;gap:6px;justify-content:flex-end}.btn{background:var(--paper);border:2px solid var(--ink);box-shadow:-2px 2px 0 var(--shadow-c);padding:4px 10px;font-weight:700;text-transform:uppercase;font-size:10.5px;letter-spacing:.6px}.btn:active:not(:disabled){transform:translate(-1px,1px);box-shadow:-1px 1px 0 var(--shadow-c)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-danger{color:var(--danger)}.btn-primary.btn-danger{background:var(--danger);color:#fff}.btn-small{padding:2px 7px;font-size:9.5px}.mini{min-width:18px;height:18px;padding:0 4px;background:var(--paper);border:1.5px solid var(--ink);font-size:11px;line-height:1;font-weight:700}.mini.danger{color:var(--danger)}.table-area{position:relative;min-width:0;min-height:0;overflow:clip}.stage{position:absolute;inset:0;overflow:hidden;overflow:clip;background:var(--mustard-deep);touch-action:none;user-select:none}.stage.tilted:after{content:"";position:absolute;inset:0 0 auto;height:28%;background:linear-gradient(to bottom,var(--haze),transparent);pointer-events:none;z-index:1}.stage.pan-mode,.stage.pan-mode *{cursor:grab!important}.stage.panning,.stage.panning *{cursor:grabbing!important}.stage.drag-over{outline:4px dashed var(--ink);outline-offset:-10px}.drop-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow-hard);padding:14px 20px;font-weight:700;z-index:40;pointer-events:none}.world{position:absolute;left:0;top:0;width:0;height:0;transform-origin:0 0}.world.moving{will-change:transform}.plane{position:absolute;left:0;top:0;background-color:var(--mustard);background-repeat:repeat}.screen-layer{position:absolute;inset:0;pointer-events:none;z-index:25}.dice-layer{position:absolute;inset:0;pointer-events:none;z-index:10}.dice-canvas{position:absolute;inset:0;width:100%;height:100%}.die2d{position:absolute;width:50px;height:50px;transform:translate(-50%,-50%) rotate(var(--rot));filter:drop-shadow(-4px 4px 0 var(--shadow-c));animation:die-in .7s cubic-bezier(.2,.9,.25,1.15)}.die2d.dropped{opacity:.55;width:40px;height:40px}.die-face{fill:#f7f1e3;stroke:var(--die-ink);stroke-width:4.5;stroke-linejoin:round}.die-inner{fill:none;stroke:var(--die-ink);stroke-width:2;opacity:.35}.die-num{fill:var(--die-ink);font-family:var(--mono);font-weight:700}.die-sub{fill:var(--die-ink);opacity:.6;font-family:var(--mono);font-weight:700}@keyframes die-in{0%{transform:translate(calc(-50% + var(--fx)),calc(-50% + var(--fy))) rotate(calc(var(--rot) + 600deg)) scale(.8);opacity:0}15%{opacity:1}to{transform:translate(-50%,-50%) rotate(var(--rot)) scale(1)}}.zoom-controls{position:absolute;top:10px;left:10px;display:flex;gap:5px;z-index:20}.chip{background:var(--paper);border:2px solid var(--ink);box-shadow:-2px 2px 0 var(--shadow-c);padding:1px 7px;min-width:24px;height:22px;font-weight:700;font-size:10.5px}.chip-note{display:inline-flex;align-items:center;background:var(--paper-2)}.minimap-wrap{position:absolute;right:14px;bottom:14px;display:flex;align-items:flex-end;gap:8px;z-index:20}.minimap{border:3px solid var(--ink);box-shadow:var(--shadow-sm);cursor:crosshair;display:block}.presence{display:flex;flex-direction:column;gap:6px}.pin{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--ink);box-shadow:-2px 2px 0 var(--shadow-c);display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.4)}.folder-tabs{position:absolute;left:12px;bottom:0;display:flex;gap:4px;z-index:20}.folder-tab{background:var(--paper);border:2px solid var(--ink);border-bottom:0;padding:4px 10px 5px;font-size:10.5px;font-weight:600;display:flex;align-items:center}.folder-tab.active{background:var(--paper-hi);padding-bottom:8px;font-weight:700}.folder-tab.add{padding:4px 8px;font-weight:700}.folder-tabs{align-items:flex-end}.win{position:absolute;left:0;top:0;display:flex;flex-direction:column;background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow-hard);user-select:text}.win.dragging{box-shadow:-10px 10px 0 var(--shadow-c)}.win.is-max{position:absolute;inset:44px 18px 40px;transform:none;width:auto!important;height:auto!important;pointer-events:auto}.win-bar{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;height:27px;padding:0 5px;border-bottom:3px solid var(--ink);background:var(--paper-2);cursor:move;user-select:none;touch-action:none}.is-min .win-bar{border-bottom:0}.win-bar-left{display:flex;gap:3px}.win-bar-right{display:flex;gap:3px;justify-content:flex-end;align-items:center}.win-dots{width:26px;height:10px;background:radial-gradient(circle,var(--ink) 1.6px,transparent 2px) 0 0 / 8px 10px repeat-x;opacity:.6}.win-title{font:400 14px/1 var(--display);color:var(--title);text-transform:uppercase;letter-spacing:1px;text-shadow:-1px 1px 0 var(--shadow-c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding-top:2px}.win-share{border:2px solid var(--ink);background:var(--paper);font-size:8.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:1px 5px;margin-right:2px}.win-btn{width:17px;height:17px;display:grid;place-items:center;padding:0;border:2px solid var(--ink);background:var(--paper)}.win-btn svg{width:9px;height:9px}.win-btn.on{background:var(--ink);color:var(--paper)}.win-body{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.win-resize{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,var(--ink) 50%,var(--ink) 60%,transparent 60%,transparent 72%,var(--ink) 72%,var(--ink) 82%,transparent 82%);touch-action:none}.win-resize.x-only{cursor:ew-resize}.sheet-body{flex:1;overflow-y:auto;padding:10px 10px 12px;container-type:inline-size;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}.sheet-problems{background:var(--error-bg);border:2px solid var(--danger);padding:6px 8px;margin-bottom:8px;font-size:10.5px;color:var(--danger)}.sheet-cols{display:flex;gap:12px;align-items:flex-start}.sheet-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}@container (max-width: 470px){.sheet-cols{flex-direction:column}.sheet-col{width:100%}}.sheet-section{border:2.5px solid var(--ink);background:var(--sec-bg)}.sec-head{display:flex;align-items:center;gap:6px;background:var(--ink);color:var(--paper);padding:3px 4px 3px 7px}.sec-head h3{margin:0;flex:1;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;font-weight:700}.sec-title-input{flex:1;min-width:0;background:var(--paper);color:var(--ink);border:0;padding:1px 4px;font-weight:700;font-size:10.5px}.sec-edit{display:inline-flex;align-items:center;gap:3px;background:var(--paper);color:var(--ink);border:0;font-size:9px;font-weight:700;padding:1px 6px}.sec-edit svg{width:9px;height:9px}.sec-body{padding:3px 8px 6px}.empty-sec{padding:6px 0;font-size:10.5px}.row{display:flex;align-items:baseline;gap:8px;padding:4px 0 3px;border-bottom:1px solid var(--rule);min-height:24px}.row:last-child{border-bottom:0}.row.stack{flex-direction:column;gap:2px}.row-label{flex:none;font-weight:700;font-style:italic;font-size:10px;letter-spacing:.6px;text-transform:uppercase}.row-value{margin-left:auto;text-align:right;font-weight:700;font-size:11.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:0;padding:0}.row.stack .row-value,.row-value.multiline{white-space:pre-wrap;text-align:left;margin-left:0;font-weight:600}.row:not(.stack) .row-value.multiline{margin-left:auto;text-align:right;white-space:nowrap}.rollable{cursor:pointer;display:inline-flex;align-items:center;gap:4px;border-radius:2px}.rollable:hover{background:var(--paper-2);box-shadow:0 0 0 2px var(--paper-2)}.roll-icon{width:11px;height:11px;opacity:0;flex:none;transition:opacity .1s}.rollable:hover .roll-icon,.rollable:focus-visible .roll-icon{opacity:.8}.field-error{color:var(--danger)}.resource{display:inline-flex;align-items:center;gap:4px}.resource .mini{opacity:0;transition:opacity .1s}.row:hover .resource .mini,.resource .mini:focus-visible{opacity:1}.checks{display:inline-flex;gap:4px}.check{appearance:none;width:14px;height:14px;border:2px solid var(--ink);background:var(--paper);margin:0;display:inline-grid;place-items:center;cursor:pointer;vertical-align:middle}.check:checked{background:var(--ink);box-shadow:inset 0 0 0 2px var(--paper)}.list-field .list-rows{width:100%}.list-row{display:flex;gap:8px;align-items:baseline;font-weight:700;font-size:11.5px;padding:1px 0}.list-main{flex:1;min-width:0}.list-cell{background:none;border:0;padding:0;font-weight:600;color:var(--ink);white-space:nowrap}.add-section{display:block;width:100%;margin-top:12px;padding:6px;background:transparent;border:2.5px dashed var(--ink);font-weight:700;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase}.add-section:hover{background:var(--paper-2)}.field-editor{border:1.5px dashed var(--ink-soft);padding:5px;margin:6px 0;background:var(--paper)}.fe-head{display:flex;gap:4px;align-items:center}.fe-head .fe-label{flex:1;min-width:0;font-weight:700}.field-editor input:not([type=checkbox]),.field-editor select,.field-editor textarea{border:1.5px solid var(--ink);background:var(--paper-hi);padding:2px 4px;font-size:11px;min-width:0}.fe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 6px;margin-top:5px}.fe-grid label{display:flex;flex-direction:column;gap:1px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft)}.fe-grid label>input,.fe-grid label>select,.fe-grid label>textarea{color:var(--ink);text-transform:none;letter-spacing:0;font-weight:400}.fe-grid .wide{grid-column:1 / -1}.preview{text-transform:none;letter-spacing:0;font-weight:600;color:var(--ink-2)}.preview.field-error{color:var(--danger)}.list-editor{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.list-edit-row{display:flex;gap:3px;width:100%}.list-edit-row input{flex:1}.sec-edit-actions{display:flex;gap:4px;align-items:center;margin-top:6px}.spacer{flex:1}.map-stage{position:relative;width:100%;background:#fff;overflow:hidden}.win-map.is-max .win-body{container-type:size;overflow:hidden;align-items:center;justify-content:center;background:var(--paper-2)}.map-stage img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none}.map-grid{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-stage.calibrating{cursor:crosshair}.calib-box{position:absolute;border:2px solid var(--title);background:var(--error-bg);pointer-events:none}.calib-hint{position:absolute;top:8px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:4px 10px;font-weight:700;font-size:11px;pointer-events:none;white-space:nowrap}.grid-panel{position:absolute;top:6px;left:6px;z-index:3;background:var(--paper);border:2.5px solid var(--ink);box-shadow:var(--shadow-sm);padding:8px;display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:center;font-size:10.5px;font-weight:700;width:230px}.grid-panel label{display:contents}.grid-panel input,.grid-panel select{border:1.5px solid var(--ink);background:var(--paper-hi);padding:1px 4px;min-width:0;font-weight:400}.grid-panel button{grid-column:1 / -1}.grid-panel-note{grid-column:1 / -1;color:var(--ink-soft);font-weight:400;font-size:10px}.paper-text{flex:1;resize:none;border:0;outline:none;padding:6px 12px 10px 14px;font-size:12.5px;line-height:20px;background:repeating-linear-gradient(to bottom,transparent 0 19px,var(--rule) 19px 20px) 0 5px / 100% 20px,var(--paper);background-attachment:local}.dialog-backdrop{position:fixed;inset:0;background:var(--backdrop);display:grid;place-items:center;z-index:100;padding:16px}.dialog{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow-hard);width:min(420px,100%);max-height:85vh;overflow:auto}.dialog-title{font:400 15px/1 var(--display);color:var(--title);text-transform:uppercase;letter-spacing:1px;padding:9px 12px 7px;border-bottom:3px solid var(--ink);background:var(--paper-2);text-shadow:-1px 1px 0 var(--shadow-c)}.dialog-body{padding:12px}.dialog-body p{margin:0 0 8px}.error-list{margin:0;padding-left:18px;color:var(--danger)}.error-list code{font-family:inherit;font-size:11px}.dialog-input{display:flex;flex-direction:column;gap:4px;padding:0 12px 4px;font-weight:700}.dialog-body+.dialog-input{padding-top:0}.dialog-title+.dialog-input{padding-top:12px}.dialog-input input{border:2px solid var(--ink);background:var(--paper-hi);padding:5px 7px;font-weight:400}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px}.players-section{padding-bottom:6px}.players-head{display:flex;align-items:center;gap:8px}.players-head .side-label{margin:0}.players-head .btn{margin-left:auto}.net-status{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--ink-soft)}.net-status i{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper)}.net-online i{background:#2f9e44}.net-connecting i,.net-reconnecting i{background:#f2c94c;animation:net-pulse 1s ease-in-out infinite alternate}.net-no-board i{background:var(--danger)}@keyframes net-pulse{to{opacity:.35}}.players{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:170px;overflow:auto}.player-main{display:flex;align-items:center;gap:6px;min-width:0}.player.offline .player-name,.player.offline .pin{opacity:.55}.player-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:11px}.player-name em{font-weight:400;color:var(--ink-soft)}.player-name .host-tag{font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.8px}.dot{width:7px;height:7px;border-radius:50%;background:var(--ink-soft);flex:none}.dot.on{background:#2f9e44}.seat-select{border:2px solid var(--ink);background:var(--paper);font-size:10px;padding:0 2px;height:20px}.seat-select:disabled{opacity:.75}.player.wants-restore{outline:2px dashed var(--danger);outline-offset:1px}.player-note{font-size:10px;color:var(--danger);padding-left:24px}.player-help .link{padding-left:0}.restore-row{margin:4px 0 2px 24px;font-size:10.5px;display:flex;flex-direction:column;gap:4px}.restore-row label{display:flex;flex-direction:column;gap:2px;font-weight:700}.restore-row select{border:2px solid var(--ink);background:var(--paper);font-size:10.5px}.restore-actions{display:flex;gap:5px;justify-content:flex-end}.pin.small{width:18px;height:18px;font-size:9px;border-width:2px;box-shadow:none;flex:none}.pin{position:relative}.pin.me{outline:2px solid var(--paper-hi);outline-offset:1px}.pin-seat{position:absolute;right:-7px;bottom:-5px;font-style:normal;font-size:8px;line-height:1;background:var(--paper);color:var(--ink);border:1.5px solid var(--ink);padding:1px 2px;text-shadow:none}.copy-field{display:flex;flex-direction:column;gap:3px;margin:10px 0}.copy-label{font-weight:700;font-size:11px}.copy-row{display:flex;gap:6px}.copy-row input{flex:1;min-width:0;border:2px solid var(--ink);background:var(--paper-hi);padding:4px 6px;font-size:11px}.copy-hint,.dialog-note{font-size:10.5px;color:var(--ink-soft)}.dialog-input.inline{flex-direction:row;align-items:center;gap:10px;padding-top:6px}.dialog-input input[type=color]{width:44px;height:26px;padding:0}.join-dialog .dialog-actions{justify-content:space-between}.board-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:var(--backdrop);padding:16px}.board-overlay a.btn{text-decoration:none;display:inline-block}.joining{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--shadow-hard);padding:12px 18px;font:400 14px/1 var(--display);color:var(--title);text-transform:uppercase;letter-spacing:1px}.setting-buttons a.btn{text-decoration:none;color:inherit}@media (max-width: 760px){.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,88vw);transform:translate(-105%);transition:transform .2s ease;box-shadow:var(--shadow-hard);z-index:60}.sidebar.open{transform:none}.side-close{display:block;background:none;border:0;font-size:22px;line-height:1;padding:0 4px}.side-toggle{display:grid;place-items:center;position:absolute;top:10px;right:12px;z-index:30;width:32px;height:28px;background:var(--paper);border:2px solid var(--ink);box-shadow:-2px 2px 0 var(--shadow-c)}.popover{right:10px}.minimap-wrap{bottom:40px}.win.is-max{inset:44px 8px 36px}}@media (prefers-reduced-motion: reduce){.die2d{animation:none}.sidebar{transition:none}}.feed-head{display:flex;align-items:baseline;justify-content:space-between;padding-right:10px}.feed-head .link{padding:0}.feed-line,.feed-card{position:relative;padding-right:20px}.feed-del{position:absolute;top:2px;right:3px;width:16px;height:16px;padding:0;border:0;background:none;color:var(--ink-soft);font-weight:700;font-size:13px;line-height:1;opacity:0;transition:opacity .1s}li:hover>.feed-del,.feed-del:focus-visible{opacity:1}.feed-del:hover{color:var(--danger)}@media (hover: none){.feed-del{opacity:.6}}.clear-dice{position:absolute;top:10px;right:12px;z-index:20}@media (max-width: 760px){.clear-dice{right:56px}}.settings-section .side-label{margin-bottom:0}.settings-section.open .side-label{margin-bottom:6px}.more-settings{max-height:46vh;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}.sub-toggle{padding:0 0 4px;font-size:10.5px;font-weight:700}.setting-col{flex-direction:column;align-items:stretch;gap:4px}.theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:5px}.theme-opt{display:flex;align-items:center;gap:6px;padding:4px 5px;background:var(--paper);border:2px solid var(--ink);font-size:10.5px;font-weight:600;text-align:left}.theme-opt.on{box-shadow:-2px 2px 0 var(--shadow-c);font-weight:700;background:var(--paper-hi)}.theme-opt.on:after{content:"✓";margin-left:auto}.theme-swatch{display:inline-flex;border:1.5px solid var(--shadow-c);flex:none}.theme-swatch i{width:7px;height:14px}.manage-systems{border:2px dashed var(--ink-soft);padding:6px;margin-bottom:6px;font-size:11px}.sys-row+.sys-row{border-top:1px solid var(--rule);margin-top:6px;padding-top:6px}.sys-head{display:flex;align-items:center;gap:6px}.sys-head .muted{font-size:10px;margin-right:auto}.tpl-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;align-items:center}.tpl-chip{display:inline-flex;align-items:center;gap:2px;background:var(--paper);border:1.5px solid var(--ink);padding:0 0 0 5px;font-size:10px}.tpl-chip button{border:0;background:none;padding:0 4px;font-weight:700;color:var(--ink-soft)}.tpl-chip button:hover{color:var(--danger)}.tpl-list .link{padding:0}.menu-empty{font-size:10.5px;padding:4px 6px}.sec-note{font-weight:400;letter-spacing:.4px;text-transform:none;opacity:.85}.sec-count{font-weight:700;margin-left:4px;padding:0 4px;background:var(--paper);color:var(--ink)}.sec-count.over{background:var(--danger);color:#fff}.opt{padding:5px 0 4px;border-bottom:1px solid var(--rule)}.opt:last-child{border-bottom:0}.opt-head{display:flex;align-items:center;gap:6px}.opt-label{display:flex;align-items:center;gap:7px;flex:1;min-width:0;cursor:pointer}.opt-title{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.opt.taken .opt-title{color:var(--title)}.opt.is-locked,.field-block.is-locked .row{opacity:.55}.opt.is-locked .opt-label{cursor:not-allowed}input[type=radio].check{border-radius:50%}.check:disabled{cursor:not-allowed}.opt-roll{background:none;border:0;padding:0 2px;font-weight:700;font-size:10.5px;white-space:nowrap}.desc-toggle{background:none;border:0;padding:0 4px 0 0;font-size:10px;color:var(--ink-soft);font-style:normal}.desc-toggle:hover{color:var(--ink)}.field-desc{white-space:pre-wrap;font-size:10.5px;line-height:1.45;padding:3px 0 2px 21px;color:var(--ink);opacity:.88}.field-req{font-size:9.5px;font-style:italic;padding:1px 0 0 21px;color:var(--ink-soft)}.field-block .field-desc,.field-block .field-req{padding-left:0}.roll-outcome{font-weight:700;font-style:italic}.sec-props{margin:4px 0 6px;padding-bottom:6px;border-bottom:1.5px dashed var(--ink-soft)}
