:root{--pg-font-body: ui-sans-serif, system-ui, sans-serif;--pg-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--pg-color-bg: #09090b;--pg-color-surface: #18181b;--pg-color-surface-alt: #27272a;--pg-color-border: #52525b;--pg-color-text: #fafafa;--pg-color-text-muted: #a1a1aa;--pg-color-text-dim: #71717a;--pg-color-accent: #a855f7;--pg-color-accent-high: #d8b4fe;--pg-color-accent-low: #2e1065;--pg-color-error: #ef4444;--pg-color-success: #10b981;--pg-color-removed: #ef4444;--pg-color-added: #a855f7;--pg-color-total: #d8b4fe;--pg-space-xs: .25rem;--pg-space-sm: .5rem;--pg-space-md: 1rem;--pg-space-lg: 1.5rem;--pg-space-xl: 2rem;--pg-radius-sm: 5px;--pg-radius-md: 5px}:root{--dui-color-bg: var(--pg-color-bg);--dui-color-surface: var(--pg-color-surface);--dui-color-surface-alt: var(--pg-color-surface-alt);--dui-color-border: var(--pg-color-border);--dui-color-text: var(--pg-color-text);--dui-color-text-muted: var(--pg-color-text-muted);--dui-color-text-dim: var(--pg-color-text-dim);--dui-color-accent: var(--pg-color-accent);--dui-color-accent-high: var(--pg-color-accent-high);--dui-color-accent-low: var(--pg-color-accent-low);--dui-color-error: var(--pg-color-error);--dui-color-success: var(--pg-color-success);--dui-color-removed: var(--pg-color-removed);--dui-color-added: var(--pg-color-added);--dui-color-total: var(--pg-color-total);--dui-font-mono: var(--pg-font-mono);--dui-font-body: var(--pg-font-body);--dui-space-xs: var(--pg-space-xs);--dui-space-sm: var(--pg-space-sm);--dui-space-md: var(--pg-space-md);--dui-space-lg: var(--pg-space-lg);--dui-space-xl: var(--pg-space-xl);--dui-radius-sm: var(--pg-radius-sm);--dui-radius-md: var(--pg-radius-md)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--pg-color-bg: #ffffff;--pg-color-surface: #f4f4f5;--pg-color-surface-alt: #e4e4e7;--pg-color-border: #a1a1aa;--pg-color-text: #18181b;--pg-color-text-muted: #3f3f46;--pg-color-text-dim: #71717a;--pg-color-accent: #9333ea;--pg-color-accent-high: #6b21a8;--pg-color-accent-low: #f3e8ff;--pg-color-error: #dc2626;--pg-color-success: #059669;--pg-color-removed: #dc2626;--pg-color-added: #9333ea;--pg-color-total: #6b21a8}}@media(max-width:540px){.pg-header{flex-wrap:wrap;gap:var(--pg-space-sm)}}[data-theme=light]{--pg-color-bg: #ffffff;--pg-color-surface: #f4f4f5;--pg-color-surface-alt: #e4e4e7;--pg-color-border: #a1a1aa;--pg-color-text: #18181b;--pg-color-text-muted: #3f3f46;--pg-color-text-dim: #71717a;--pg-color-accent: #9333ea;--pg-color-accent-high: #6b21a8;--pg-color-accent-low: #f3e8ff;--pg-color-error: #dc2626;--pg-color-success: #059669;--pg-color-removed: #dc2626;--pg-color-added: #9333ea;--pg-color-total: #6b21a8}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;background-color:var(--pg-color-bg);color:var(--pg-color-text);font-family:var(--pg-font-body)}.pg-desktop-only{display:none}.pg-mobile-only{display:block;padding:0 var(--pg-space-md)}@media(min-width:768px){.pg-desktop-only{display:block}.pg-mobile-only{display:none}}.du-input-wrap{position:relative;min-width:0}.du-notation-overlay{position:absolute;top:0;left:0;right:0;pointer-events:none;white-space:pre;font:inherit;line-height:inherit;letter-spacing:inherit;font-kerning:inherit;padding:0}.du-token{transition:color .12s ease,opacity .12s ease}.du-token--dim{opacity:.35}.du-token--active{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.du-token--unknown{color:var(--dui-color-error, #f97583)}.du-token--core{color:#60a5fa}.du-token--percentile,.du-token--fate,.du-token--geometric,.du-token--draw,.du-token--zeroBias,.du-token--customFaces{color:#93c5fd}.du-token--dropHighest{color:#b858b0}.du-token--dropLowest{color:#f060d0}.du-token--dropCondition{color:#d860c0}.du-token--keepHighest{color:#ffab70}.du-token--keepLowest{color:#d4845a}.du-token--keepMiddle{color:#e09060}.du-token--explode{color:#e5c07b}.du-token--compound{color:#e08040}.du-token--penetrate{color:#b8d858}.du-token--explodeSequence{color:#d0b040}.du-token--reroll{color:#c792ea}.du-token--cap{color:#89ddff}.du-token--replace{color:#c3e88d}.du-token--unique{color:#80cbc4}.du-token--countSuccesses,.du-token--countFailures,.du-token--count{color:#82aaff}.du-token--marginOfSuccess{color:#a0c4ff}.du-token--plus{color:#98c379}.du-token--minus{color:#6b9e52}.du-token--multiply{color:#ffcb6b}.du-token--multiplyTotal{color:#e8a93a}.du-token--integerDivide{color:#a8c060}.du-token--modulo{color:#90b848}.du-token--sort{color:#80cbc4}.du-token--wildDie{color:#ff8a65}.du-token--repeat{color:var(--dui-color-text-muted, #a1a1aa)}.du-token--label{color:var(--dui-color-text-dim, #71717a)}@media(prefers-color-scheme:light){.du-token--unknown{color:var(--dui-color-error, #c0394a)}.du-token--core{color:#2563eb}.du-token--percentile,.du-token--fate,.du-token--geometric,.du-token--draw,.du-token--zeroBias,.du-token--customFaces{color:#1e40af}.du-token--dropHighest{color:#802090}.du-token--dropLowest{color:#b028a8}.du-token--dropCondition{color:#9020a0}.du-token--keepHighest{color:#c2620a}.du-token--keepLowest{color:#9e4e20}.du-token--explode{color:#9a7c1a}.du-token--compound{color:#c05818}.du-token--penetrate{color:#5a8018}.du-token--reroll{color:#7c4dab}.du-token--cap{color:#0082a5}.du-token--replace{color:#4a8020}.du-token--unique{color:#1a7a72}.du-token--countSuccesses,.du-token--countFailures,.du-token--count{color:#3a60c8}.du-token--plus{color:#3a7d20}.du-token--minus{color:#2a6018}.du-token--multiply{color:#8a6a00}.du-token--multiplyTotal{color:#7a5800}}[data-theme=light] .du-token--unknown{color:var(--dui-color-error, #c0394a)}[data-theme=light] .du-token--core{color:#2563eb}[data-theme=light] .du-token--percentile,[data-theme=light] .du-token--fate,[data-theme=light] .du-token--geometric,[data-theme=light] .du-token--draw,[data-theme=light] .du-token--zeroBias,[data-theme=light] .du-token--customFaces{color:#1e40af}[data-theme=light] .du-token--dropHighest{color:#802090}[data-theme=light] .du-token--dropLowest{color:#b028a8}[data-theme=light] .du-token--dropCondition{color:#9020a0}[data-theme=light] .du-token--keepHighest{color:#c2620a}[data-theme=light] .du-token--keepLowest{color:#9e4e20}[data-theme=light] .du-token--explode{color:#9a7c1a}[data-theme=light] .du-token--compound{color:#c05818}[data-theme=light] .du-token--penetrate{color:#5a8018}[data-theme=light] .du-token--reroll{color:#7c4dab}[data-theme=light] .du-token--cap{color:#0082a5}[data-theme=light] .du-token--replace{color:#4a8020}[data-theme=light] .du-token--unique{color:#1a7a72}[data-theme=light] .du-token--countSuccesses,[data-theme=light] .du-token--countFailures,[data-theme=light] .du-token--count{color:#3a60c8}[data-theme=light] .du-token--plus{color:#3a7d20}[data-theme=light] .du-token--minus{color:#2a6018}[data-theme=light] .du-token--multiply{color:#8a6a00}[data-theme=light] .du-token--multiplyTotal{color:#7a5800}.du-roll-steps{display:flex;flex-direction:column;gap:var(--dui-space-xs)}.du-pool-heading{font-family:var(--dui-font-mono);font-size:.875rem;color:var(--dui-color-text-muted);margin:0;padding-bottom:var(--dui-space-xs);border-bottom:1px solid var(--dui-color-border)}.du-step-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dui-space-sm);padding:var(--dui-space-xs) var(--dui-space-xs)}.du-step-row--final{padding-top:var(--dui-space-sm);margin-top:var(--dui-space-xs)}.du-step-label{color:var(--dui-color-text-muted);flex-shrink:0}.du-step-arithmetic{font-family:var(--dui-font-mono);color:var(--dui-color-text);font-weight:600}.du-step-final-math{font-family:var(--dui-font-mono);color:var(--dui-color-text)}.du-step-divider{border:none;border-top:1px solid var(--dui-color-border);margin:var(--dui-space-xs) 0}.du-die-badges{display:flex;flex-wrap:wrap;gap:var(--dui-space-xs);align-items:center}.du-die-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;padding:.125rem .25rem;border-radius:var(--dui-radius-sm);font-family:var(--dui-font-mono);font-weight:500;background:transparent;color:var(--dui-color-text)}.du-die-badge--removed{color:var(--dui-color-removed);opacity:.7}.du-die-badge--added{color:var(--dui-color-text)}.du-replacement-pair{display:inline-flex;align-items:center;gap:.15em}.du-replacement-arrow{color:var(--dui-color-text-muted);font-size:.75em}.du-notation-roller{position:relative;max-width:100%;width:100%}.du-notation-roller-shell{position:relative;display:flex;flex-direction:column;background:transparent;border:none;border-radius:var(--dui-radius, 5px);box-sizing:border-box;overflow:visible}.du-notation-roller-row{display:flex;align-items:center;height:3rem;background:var(--dui-color-surface, #222228);border:1px solid rgba(255,255,255,.12);border-radius:var(--dui-radius, 5px);box-sizing:border-box;transition:border-color .15s ease}@media(prefers-color-scheme:light){.du-notation-roller-row{background:#eeeef0;border-color:#0000001a}}[data-theme=light] .du-notation-roller-row{background:#eeeef0;border-color:#0000001a}.du-notation-roller-shell--valid .du-notation-roller-row{border-color:var(--dui-color-accent, #a855f7)}@media(prefers-color-scheme:light){.du-notation-roller-shell--valid .du-notation-roller-row{border-color:#7c3aed}}[data-theme=light] .du-notation-roller-shell--valid .du-notation-roller-row{border-color:#9333ea}.du-notation-roller-shell--invalid .du-notation-roller-row{border-color:#f97583}.du-notation-roller-input-wrap{width:100%;display:flex;align-items:center;min-width:0;padding:0 .75rem;overflow:hidden;position:relative}.du-nr-input-wrap{position:relative;flex:1;min-width:0;overflow:hidden;font-family:var(--dui-font-mono, "Menlo", "Consolas", "Monaco", monospace);font-size:1.25rem;line-height:1;letter-spacing:0;font-kerning:none}.du-notation-roller-input{padding:0;font-family:var(--dui-font-mono, "Menlo", "Consolas", "Monaco", monospace);font-size:1.25rem;line-height:1;letter-spacing:0;font-kerning:none;background:transparent;border:none;outline:none;color:#98c379;caret-color:var(--dui-color-accent, #a855f7);box-sizing:border-box;width:100%;min-width:0}.du-notation-roller-input--highlight{color:transparent}@media(prefers-color-scheme:light){.du-notation-roller-input{color:#417e38;caret-color:#7c3aed}}[data-theme=light] .du-notation-roller-input{color:#417e38;caret-color:#7c3aed}.du-notation-roller-buttons{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:.5rem}.du-notation-roller-roll-btn{display:inline-flex;align-items:center;justify-content:center;height:1.75rem;padding:0 .75rem;background:var(--dui-color-accent, #a855f7);border:none;border-radius:var(--dui-radius, 5px);color:#fff;font-family:var(--dui-font-mono, monospace);font-size:.65rem;font-weight:700;letter-spacing:.1em;cursor:pointer;transition:background .15s ease,opacity .15s ease;line-height:1;box-sizing:border-box;white-space:nowrap}.du-notation-roller-roll-btn:hover{background:#9333ea}.du-notation-roller-roll-btn:disabled{opacity:.4;cursor:default}.du-notation-roller-roll-btn:disabled:hover{background:var(--dui-color-accent, #a855f7)}.du-notation-roller-desc-row{border-top:none;background:transparent;padding:.35rem .5rem .5rem;min-height:0;font-family:var(--dui-font-mono, "Menlo", "Consolas", "Monaco", monospace);font-size:.7rem;line-height:1.4;display:flex;align-items:flex-start;justify-content:flex-start;gap:.75rem;box-sizing:border-box}.du-notation-roller-desc{flex:1;text-align:left}.du-notation-roller-desc--hint{color:#e6edf359}@media(prefers-color-scheme:light){.du-notation-roller-desc--hint{color:#1f232880}}[data-theme=light] .du-notation-roller-desc--hint{color:#1f232880}.du-notation-roller-desc--valid{color:#9ca3af}@media(prefers-color-scheme:light){.du-notation-roller-desc--valid{color:#52525b}}[data-theme=light] .du-notation-roller-desc--valid{color:#52525b}.du-notation-roller-desc--invalid{color:#f97583}.du-nr-desc-chip{font-size:.7rem;padding:.05em .25em;border-radius:var(--dui-radius, 5px);cursor:default;user-select:none;color:var(--chip-color, inherit);transition:color .15s ease,opacity .12s ease;line-height:1.5}.du-nr-desc-chip--dim{opacity:.35}.du-nr-desc-sep{font-size:.7rem;opacity:.5;user-select:none;transition:opacity .12s ease}.du-nr-desc-sep--dim{opacity:.2}.du-notation-roller-result-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:66.67%;max-height:200%;z-index:50;display:block;padding:.5rem;background:var(--dui-color-surface, #18181b);border-radius:var(--dui-radius, 5px);border:1.5px solid var(--dui-color-accent, #a855f7);box-shadow:0 8px 32px #00000080;font-family:var(--dui-font-mono, "Menlo", "Consolas", "Monaco", monospace);font-size:.75rem;animation:du-nr-tooltip-in .3s cubic-bezier(.34,1.56,.64,1);pointer-events:auto;overflow-x:hidden;overflow-y:auto}.du-notation-roller-result-backdrop{position:absolute;inset:0;z-index:49;backdrop-filter:blur(4px);background:#0000004d;border-radius:var(--dui-radius, 5px);pointer-events:auto;animation:du-nr-backdrop-in .2s ease}.du-nr-tooltip-close{float:right;background:none;border:none;color:#71717a;font-size:1rem;line-height:1;padding:.1rem .25rem;margin:0 0 .25rem .25rem;cursor:pointer;transition:color .15s ease}.du-nr-tooltip-close:hover{color:#e4e4e7}@keyframes du-nr-tooltip-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.85);filter:blur(4px)}60%{opacity:1;filter:blur(0)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}@keyframes du-nr-backdrop-in{0%{opacity:0}to{opacity:1}}.du-nr-tooltip-flow{width:100%}.du-nr-tooltip-total-pane{float:left;display:flex;align-items:center;justify-content:center;min-width:2ch;padding:.5rem .75rem;margin:.5rem;border:1px solid rgba(168,85,247,.4);border-radius:var(--dui-radius, 5px)}.du-nr-tooltip-total-value{font-family:var(--dui-font-mono, "Menlo", "Consolas", "Monaco", monospace);font-size:1.75rem;font-weight:700;color:var(--dui-color-text, #ffffff);line-height:1}.du-nr-tooltip-rows{display:block}.du-nr-tooltip-rows>*{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dui-space-sm, .5rem);padding:var(--dui-space-xs, .25rem) var(--dui-space-xs, .25rem)}.du-nr-tooltip-rows>:not(.du-nr-tooltip-header-line):nth-child(odd){background:#ffffff0a}@media(prefers-color-scheme:light){.du-nr-tooltip-rows>:not(.du-nr-tooltip-header-line):nth-child(odd){background:#0000000a}}[data-theme=light] .du-nr-tooltip-rows>:not(.du-nr-tooltip-header-line):nth-child(odd){background:#0000000a}.du-nr-tooltip-row{display:flex;align-items:baseline;justify-content:space-between;gap:.25rem}.du-nr-tooltip-header-line{flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.15rem;padding-bottom:.35rem}@media(prefers-color-scheme:light){.du-nr-tooltip-header-line{border-bottom-color:#0000001a}}[data-theme=light] .du-nr-tooltip-header-line{border-bottom-color:#0000001a}.du-nr-tooltip-notation{font-weight:700;color:var(--dui-color-accent, #a855f7);white-space:nowrap}.du-nr-tooltip-sep{color:#3f3f46}.du-nr-tooltip-desc{color:var(--dui-color-text-dim, #71717a);font-size:.65rem}.du-nr-tooltip-row--total{justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);margin-top:.15rem;padding-top:.35rem}@media(prefers-color-scheme:light){.du-nr-tooltip-row--total{border-top-color:#0000001a}.du-nr-tooltip-total-pane{border-color:#9333ea4d}.du-nr-tooltip-total-value{color:#18181b}}[data-theme=light] .du-nr-tooltip-row--total{border-top-color:#0000001a}[data-theme=light] .du-nr-tooltip-total-pane{border-color:#9333ea4d}[data-theme=light] .du-nr-tooltip-total-value{color:#18181b}.du-nr-result-label--total,.du-nr-result-dice--total{font-weight:700}@media(prefers-color-scheme:light){.du-nr-result-label--total,.du-nr-result-dice--total{color:#18181b}.du-notation-roller-result-overlay{background:#eeeef0;border-color:#7c3aed;box-shadow:0 8px 32px #0000001f}.du-notation-roller-result-backdrop{background:#ffffff4d}.du-nr-tooltip-close:hover{color:#27272a}}[data-theme=light] .du-nr-result-label--total,[data-theme=light] .du-nr-result-dice--total{color:#18181b}[data-theme=light] .du-notation-roller-result-overlay{background:#eeeef0;border-color:#9333ea;box-shadow:0 8px 32px #0000001f}[data-theme=light] .du-nr-tooltip-close:hover{color:#27272a}
