@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f5f4f1;--panel: #ffffff;--panel-2: #f8f7f4;--text: #1d1b18;--muted: #6e695f;--border: #e6e2da;--border-strong: #d5cfc4;--accent: #a95316;--accent-hover: #8f4512;--accent-text: #ffffff;--accent-soft: #fbeee2;--danger: #b3261e;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(28, 22, 14, .05);--shadow: 0 1px 2px rgba(28, 22, 14, .04), 0 4px 14px rgba(28, 22, 14, .05);--shadow-lg: 0 12px 40px rgba(28, 22, 14, .18);--ring: 0 0 0 3px rgba(194, 98, 26, .25);--glow: rgba(214, 120, 40, .1);--font-display: "Fraunces Variable", "Iowan Old Style", Georgia, serif;font-family:Inter Variable,Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #111113;--panel: #19191c;--panel-2: #202024;--text: #edebe7;--muted: #9d988f;--border: #2a2a2f;--border-strong: #3a3a41;--accent: #f0a04b;--accent-hover: #f5b46a;--accent-text: #1b1208;--accent-soft: rgba(240, 160, 75, .13);--danger: #ef6b60;--shadow-sm: none;--shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 6px 20px rgba(0, 0, 0, .25);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .55);--ring: 0 0 0 3px rgba(240, 160, 75, .3);--glow: rgba(240, 160, 75, .07);color-scheme:dark}}:root[data-theme=dark]{--bg: #111113;--panel: #19191c;--panel-2: #202024;--text: #edebe7;--muted: #9d988f;--border: #2a2a2f;--border-strong: #3a3a41;--accent: #f0a04b;--accent-hover: #f5b46a;--accent-text: #1b1208;--accent-soft: rgba(240, 160, 75, .13);--danger: #ef6b60;--shadow-sm: none;--shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 6px 20px rgba(0, 0, 0, .25);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .55);--ring: 0 0 0 3px rgba(240, 160, 75, .3);--glow: rgba(240, 160, 75, .07);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1100px 420px at 55% -160px,var(--glow),transparent 70%) no-repeat,var(--bg);background-attachment:fixed;color:var(--text);font-size:15px;line-height:1.5}h1,h2,h3{line-height:1.2;margin:0 0 12px;letter-spacing:-.015em}h1{font-family:var(--font-display);font-size:32px;font-weight:600;letter-spacing:-.01em;font-variation-settings:"opsz" 72,"SOFT" 50}h2{font-size:16px;font-weight:650}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:is(p,li,.small,.muted,.locked) a:not(nav a,.button){text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}::selection{background:var(--accent-soft)}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.nav{position:sticky;top:0;height:100vh;border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:2px;background:var(--panel)}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:650;font-size:21px;letter-spacing:-.01em;padding:2px 10px 20px;color:var(--text)}.brand img{width:30px;height:30px;border-radius:8px;box-shadow:0 0 0 1px var(--border),0 4px 16px var(--glow)}.nav a{display:flex;align-items:center;gap:10px;color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:var(--radius);font-weight:500;transition:background .15s,color .15s}.nav a:hover{background:var(--panel-2);color:var(--text)}.nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.nav-icon{display:inline-flex;width:20px;justify-content:center}.nav .spacer{flex:1}main{padding:28px 32px 40px;max-width:1240px;width:100%}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow)}.panel h2{font-size:15px;letter-spacing:-.005em}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:14px}.muted{color:var(--muted)}.small{font-size:13px}button,.button{font:inherit;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--border-strong);background:var(--panel);color:var(--text);padding:7px 14px;min-height:36px;border-radius:var(--radius);display:inline-flex;align-items:center;gap:6px;box-shadow:var(--shadow-sm);transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .05s}button:hover{border-color:var(--accent)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:none;box-shadow:var(--ring)}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600;box-shadow:0 1px 2px #0000001f,inset 0 1px #ffffff2e}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger)}button:disabled{opacity:.45;cursor:default}input,textarea,select{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 11px;width:100%;transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}textarea{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:14px;min-height:260px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);background:var(--panel);box-shadow:var(--ring)}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}.tables-page{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}.table-list{max-height:calc(100vh - 140px);overflow:auto;padding:8px}.folder{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:12px 8px 4px}.table-item{display:flex;justify-content:space-between;width:100%;border:none;background:none;box-shadow:none;text-align:left;padding:6px 8px;min-height:0}.table-item:hover{background:var(--panel-2)}.table-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.tag{font-size:11px;font-weight:500;color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:1px 8px}.result{font-size:18px;padding:14px 16px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius)}.result .meta{font-size:12px;color:var(--muted);margin-top:4px}.entries{margin:0;padding:0;list-style:none}.entries li{display:grid;grid-template-columns:56px 1fr;gap:8px;padding:5px 0;border-bottom:1px solid var(--border)}.entries li.hit{color:var(--accent);font-weight:600}.entries .n{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.dice-total{font-size:44px;font-weight:700;color:var(--accent)}.history li{padding:6px 0;border-bottom:1px solid var(--border);list-style:none}.history{padding:0;margin:0;max-height:420px;overflow:auto}.error{color:var(--danger)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.title-input{font-family:var(--font-display);font-size:30px;font-weight:600;letter-spacing:-.01em;font-variation-settings:"opsz" 72,"SOFT" 50;background:transparent;border-color:transparent;box-shadow:none;padding:2px 8px;margin-left:-9px;width:calc(100% + 9px)}.title-input:hover{border-color:var(--border)}.title-input:focus{background:var(--panel)}textarea.prose{font-family:inherit;font-size:15px;min-height:0;resize:vertical}.prep{max-width:860px}.campaign-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;align-items:start}.list{margin:0;padding:0;list-style:none}.list li{padding:7px 0;border-bottom:1px solid var(--border)}.tag-accent{color:var(--accent);border-color:var(--accent)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;min-height:0;border:1px solid var(--border);border-radius:99px;background:var(--panel-2);text-decoration:none;color:var(--text);font-size:13.5px;box-shadow:none}a.chip:hover,button.chip:hover{border-color:var(--accent)}.chip-x{border:none;background:none;box-shadow:none;padding:0 4px;min-height:0;color:var(--muted);border-radius:6px}.chip-x:hover{color:var(--danger)}.link-button{border:none;background:none;box-shadow:none;color:var(--accent);padding:4px 0;min-height:0;font-size:14px;font-weight:500}.link-button:hover{text-decoration:underline;text-underline-offset:3px}.segmented{display:inline-flex;gap:2px;padding:3px;background:var(--panel-2);border:1px solid var(--border);border-radius:calc(var(--radius) + 2px)}.segmented button{border:none;background:transparent;box-shadow:none;color:var(--muted);border-radius:8px;min-height:30px;padding:4px 12px}.segmented button:hover{color:var(--text);background:var(--panel)}.segmented button.primary{background:var(--accent);color:var(--accent-text);box-shadow:0 1px 2px #00000026}.secret{flex-wrap:nowrap}.secret input[type=checkbox]{width:24px;height:24px;flex:none;accent-color:var(--accent)}.secret input.done{text-decoration:line-through;color:var(--muted)}.clock{display:flex;gap:6px}.clock .segment{width:36px;height:36px;padding:0;border-radius:6px}.clock .segment.filled{background:var(--accent);border-color:var(--accent)}.run-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:start}.pre{white-space:pre-wrap}.timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:18px;color:var(--accent)}.chip-active{border-color:var(--accent);color:var(--accent)}.note-peek{border-left:3px solid var(--accent);padding:6px 12px;display:flex;flex-direction:column;gap:4px}.history li.latest{border-left:4px solid var(--accent);background:var(--accent-soft);padding:8px 10px;border-radius:var(--radius)}.turns{list-style:none;margin:0;padding:0}.turns li{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--radius)}.turns li.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.turns .init{width:28px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.turns .grow{flex:1}.turn-note{width:90px;padding:3px 6px;font-size:13px}.secret span.done{text-decoration:line-through;color:var(--muted)}@media (max-width: 1100px){.layout{grid-template-columns:150px 1fr}.nav{padding:16px 8px}}@media (pointer: coarse){input,textarea,select{font-size:16px}button{min-height:40px}.chip-x{min-width:32px;min-height:32px}.secret input[type=checkbox]{width:24px;height:24px}.turns li{padding:8px}.table-item{padding:10px 8px}}@media (max-width: 760px){.run-grid,.campaign-grid{grid-template-columns:1fr}.layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.nav a{white-space:nowrap}.nav{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:8px 16px}.brand{padding:8px 10px}.nav .spacer{display:none}main{padding:16px}.tables-page{grid-template-columns:1fr}.table-list{max-height:260px}}.pack-pick{max-height:300px;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:4px 12px}.pack-pick input[type=checkbox],.folder input[type=checkbox]{width:auto;accent-color:var(--accent)}.map-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.map-card{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:var(--radius);padding:8px;background:var(--panel)}.map-card a{display:flex;flex-direction:column;gap:6px;color:var(--text);text-decoration:none;font-weight:600}.map-card img{width:100%;aspect-ratio:3 / 2;object-fit:contain;background:#2b2d31;border-radius:6px}.map-card .link-button{align-self:flex-start}.map-card.pick{cursor:pointer}.map-card.pick.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.map-card .map-on{color:var(--accent);font-weight:600}.new-map{border:1px solid var(--border);border-radius:var(--radius);padding:12px}.picture-preview{position:relative;width:100%;max-width:640px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.picture-preview img,.picture-preview svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.map-editor{display:flex;flex-direction:column;height:calc(100vh - 48px);gap:8px}.map-toolbar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.map-toolbar .map-name{width:auto;flex:1;min-width:160px}.map-toolbar .zoom{min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.map-workspace{flex:1;min-height:0;display:flex;gap:8px;position:relative}.map-tools{display:flex;flex-direction:column;gap:6px}.map-options{width:220px;flex:none;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px;overflow:auto}.map-options input[type=range]{padding:0;accent-color:var(--accent)}.map-canvas{flex:1;min-width:0;width:100%;height:100%;border-radius:var(--radius);display:block;touch-action:none;background:#2b2d31}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.map-status{display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between}.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px}.swatch{height:52px;padding:0;background-size:cover;position:relative;overflow:hidden;align-items:flex-end}.swatch span{width:100%;font-size:12px;background:#0000008c;color:#fff;padding:2px 4px}.swatch.active{outline:2px solid var(--accent);outline-offset:1px}.stamp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:4px}.stamp-pick{flex-direction:column;padding:4px 2px;gap:2px;font-size:11px;background:#efe6d2;color:#3b2f25}.stamp-pick img{width:36px;height:36px}.stamp-pick.active{outline:2px solid var(--accent);outline-offset:1px}.swatch.eraser{background:repeating-linear-gradient(45deg,var(--bg),var(--bg) 6px,var(--border) 6px,var(--border) 12px)}.map-viewer{position:relative;height:60vh;min-height:320px}.map-viewer-controls{position:absolute;top:8px;right:8px;display:flex;gap:4px}.map-viewer:fullscreen{height:100vh;background:#2b2d31}.map-viewer:fullscreen .map-canvas{border-radius:0}@media (max-width: 760px){.map-editor{height:auto}.map-workspace{flex-direction:column;height:70vh}.map-tools{flex-direction:row}.map-options{width:auto;max-height:40vh}}.print-page{background:#d9d4ca;min-height:100vh;padding:0 0 32px}.print-empty{padding:32px}.print-toolbar{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border);color:var(--text)}.book{--ink: #1f1a15;--rule: #b9ab93;--accent-ink: #7a3b1d;background:#fff;color:var(--ink);font:10.5pt/1.4 Georgia,Times New Roman,serif;margin:24px auto 0;padding:16mm 15mm;box-shadow:0 2px 12px #00000040}.book.paper-letter{max-width:216mm}.book.paper-a4{max-width:210mm}.book a{color:inherit;text-decoration:none}.book h1,.book h2,.book h3{font-family:Georgia,Times New Roman,serif;color:var(--ink);break-after:avoid}.book h2{font-size:18pt;margin:0 0 10px;padding-bottom:4px;border-bottom:2px solid var(--accent-ink)}.book h3{font-size:12pt;margin:0 0 4px;color:var(--accent-ink)}.cover{min-height:230mm;display:flex;flex-direction:column;justify-content:center;text-align:center;break-after:page}.cover-mark{text-transform:uppercase;letter-spacing:.2em;font-size:9pt;color:var(--accent-ink)}.cover h1{font-size:36pt;line-height:1.1;margin:12px 0}.cover .byline{font-size:14pt;font-style:italic;margin:0 0 24px}.cover .blurb{max-width:120mm;margin:0 auto 24px;font-size:11.5pt}.cover .cover-meta{font-size:9pt;color:#6b6156}.contents{break-after:page}.contents ul{list-style:none;padding:0;margin:0 0 12px;columns:2;column-gap:10mm}.contents li{padding:1px 0;break-inside:avoid}.contents .die,.book .roll{font-variant-numeric:tabular-nums}.contents .die{color:#6b6156;font-size:9pt}.contents-group h3{margin-top:8px}.how-to{margin-top:16px;padding:8px 12px;border:1px solid var(--rule);border-radius:4px;font-size:9.5pt}.how-to p{margin:4px 0}.chapter{break-before:page}.chapter:first-of-type{break-before:auto}.chapter-tables{columns:2;column-gap:8mm}.ptable{break-inside:avoid;margin:0 0 14px}.ptable.long{break-inside:auto}.ptable table{width:100%;border-collapse:collapse;font-size:9.5pt}.ptable th{text-align:left;font-weight:700;border-bottom:1px solid var(--ink);padding:2px 4px}.ptable td{vertical-align:top;padding:2px 4px;border-bottom:1px solid #e6dfd2}.ptable tr{break-inside:avoid}.ptable tbody tr:nth-child(2n) td{background:#f6f1e7}.ptable .roll{width:3.2em;white-space:nowrap;text-align:center;font-weight:700}.colophon{break-before:page}.colophon .muted-print{color:#6b6156;font-style:italic}@media screen and (max-width: 700px){.book{margin:0;padding:16px;box-shadow:none;font-size:10pt}.chapter-tables,.contents ul{columns:1}.cover{min-height:70vh}}@media print{.no-print{display:none!important}html,body,.print-page{background:#fff!important}.print-page{padding:0;min-height:0}.book{margin:0;padding:0;max-width:none;box-shadow:none}.book .chapter-tables,.book .contents ul{columns:2}.book tbody tr:nth-child(2n) td{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.sound-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.sound-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sound-row .sound-name{flex:1;min-width:140px}.sound-row .sound-volume{width:110px;padding:0;accent-color:var(--accent)}.sound-row .sound-size{min-width:52px;text-align:right}.sound-preview{width:36px;padding:6px 0;justify-content:center}.sound-pads{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}.sound-pad{min-height:52px;flex-direction:column;justify-content:center;gap:2px;font-size:13px;line-height:1.2;text-align:center;word-break:break-word}.sound-pad-icon{font-size:15px;opacity:.75}.sound-pad.scene.playing,.sound-pad.loop.playing{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.sound-pad.loop.playing .sound-pad-icon{animation:sound-pulse 1.6s ease-in-out infinite;opacity:1}.sound-pad.shot:active{background:var(--accent);color:var(--accent-text)}@keyframes sound-pulse{50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.sound-pad.loop.playing .sound-pad-icon{animation:none}}.builtin-sounds{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.builtin-sound{display:flex;align-items:center;gap:8px;font-size:13px}.builtin-sound .sound-preview{flex:none;width:36px;min-height:36px;border-radius:999px}.builtin-sound label{display:flex;align-items:center;gap:6px;flex:1;min-width:0;min-height:36px;cursor:pointer}.builtin-sound input{width:auto;margin:0;accent-color:var(--accent)}.builtin-sound.off label,.builtin-sound.off .builtin-sound-name{color:var(--muted)}.builtin-sound-name{flex:1;min-width:0}.sync-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:20px;letter-spacing:1px;padding:10px 12px;border:1px dashed var(--border);border-radius:var(--radius);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.sync-code-input{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px}.sync-share{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.sync-share .stack{flex:1;min-width:180px}.sync-qr{width:168px;height:168px;border-radius:4px;flex:none}.sync-dot{width:9px;height:9px;border-radius:50%;background:#3a9a5b;flex:none}.sync-dot.syncing{background:var(--accent)}.sync-dot.error{background:var(--danger)}.danger-text{color:var(--danger)}.sync-share button{align-self:flex-start}.fog-bar{flex-wrap:wrap;gap:8px}.fog-bar select{padding:4px 6px}.pointer-bar{flex-wrap:wrap;gap:8px}.pointer-bar .segmented button{padding:4px 9px}.player-pointers{position:absolute;left:12px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:1}.player-pointers .pointer-bar{pointer-events:auto;flex-direction:column;align-items:stretch;gap:4px;background:#121117d1;border:1px solid #36333b;border-radius:calc(var(--radius) + 4px);padding:4px;color:#ece8e1}.player-pointers .segmented{flex-direction:column;background:transparent;border:none;padding:0}.player-pointers .segmented button{color:#c9c3ba;justify-content:flex-start;text-align:left}.player-pointers .segmented button.primary{color:var(--accent-text)}.player-pointers .pointer-hint{display:none}.player-pointers .link-button{color:#ffc27a;font-size:12px;padding:2px 4px}.player-pointers .error{max-width:140px}@media (max-width: 600px){.pointer-bar .pointer-name{display:none}.player-pointers .segmented button{justify-content:center;min-width:40px;min-height:40px}}.player-bar{flex-wrap:wrap;gap:8px}.player-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:#121117;color:#ece8e1}.player-tabs{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid #36333b;background:#1a191f;overflow-x:auto;flex:none}.player-brand{font-weight:700;color:#e3934a;margin-right:8px;white-space:nowrap}.player-tabs button{background:none;border:none;color:#a39d93;padding:8px 10px;border-radius:6px;white-space:nowrap}.player-tabs button.on{background:#3a2a1c;color:#ece8e1}.player-page .tour{background:#1f1d24;color:#ece8e1;border-color:#36333b}.player-page .tour .muted{color:#a39d93}.player-page .tour button:not(.primary):not(.link-button):not(.tour-dot){background:#2a2830;color:#ece8e1;border-color:#36333b}.player-page .tour-dot{background:#36333b}.player-page .tour-dot.active{background:var(--accent)}.player-tabs .player-help{margin-left:auto;border:1px solid #36333b;border-radius:99px;min-width:34px;font-weight:700}.player-body{position:relative;flex:1;min-height:0;overflow:auto}.player-map{position:absolute;top:0;right:0;bottom:0;left:0;background:#2b2d31}.player-map .map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:0}.player-status{position:fixed;left:12px;bottom:12px;display:flex;align-items:center;gap:8px;font-size:13px;background:#121117d9;padding:6px 10px;border-radius:999px}.player-controls{position:absolute;top:12px;right:12px;display:flex;gap:4px}.player-controls button{background:#211f25d9;color:#ece8e1;border-color:#36333b}.player-legend{position:absolute;top:12px;left:12px;max-width:min(260px,calc(100% - 140px));display:flex;flex-direction:column;gap:4px}.player-legend button{background:#211f25d9;color:#ece8e1;border-color:#36333b;text-align:left}.player-legend ul{list-style:none;margin:0;padding:4px;display:flex;flex-direction:column;gap:2px;background:#121117e6;border:1px solid #36333b;border-radius:var(--radius);max-height:50vh;overflow:auto}.player-legend li button{width:100%;display:flex;align-items:center;gap:8px;background:none;border:none}.player-legend li button:hover{background:#2a2730}.player-legend .muted{color:#a39d93}.player-legend li button.legend-picture{width:auto;margin:0 0 4px 38px;padding:2px 8px;min-height:0;font-size:12px;color:#ffc27a;background:#2c2a31;border:1px solid #36333b}@media (max-width: 600px){.player-legend{top:56px;max-width:calc(100% - 24px)}}.legend-dot{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid #ece8e1;display:grid;place-items:center;font-size:11px;font-weight:600;color:#fff;background:#7a7a7a}img.legend-dot{object-fit:cover;padding:0}.legend-hero{background:#2f5d9e}.legend-ally{background:#3c8a4a}.legend-enemy{background:#b03030}.legend-neutral{background:#7a7a7a}.legend-boss{background:#7a1f1f}.player-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:24px;color:#a39d93}.player-page-body{max-width:760px;margin:0 auto;padding:16px}.player-page-body h2{font-size:17px;margin:8px 0 0;color:#e3934a}.player-page-body input,.player-page-body textarea{background:#211f25;color:#ece8e1;border-color:#36333b}.player-page-body button:not(.link-button):not(.primary){background:#211f25;color:#ece8e1;border-color:#36333b}.player-page-body .muted{color:#a39d93}.player-join-code{display:flex;flex-direction:column;gap:2px}.player-join-code strong{font-size:24px;letter-spacing:.1em;font-variant-numeric:tabular-nums}.player-join-code a{word-break:break-all}.join-page{max-width:360px;width:100%;padding-top:12vh;overflow:auto}.join-brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:28px;color:#e3934a;margin-bottom:16px}.join-page button.primary{justify-content:center;text-align:center}.player-page-body .error{color:#ff8f80}.join-code-input{font-size:22px;letter-spacing:.12em;text-transform:uppercase;text-align:center}.player-clues{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.player-note{border:1px solid #36333b;border-radius:var(--radius);padding:10px 12px;background:#1a191f}.player-note-body{white-space:pre-wrap;margin-top:6px;color:#d8d3cb}.player-gifts{border:1px solid #e3934a;border-radius:var(--radius);padding:10px 12px;background:#3a2a1c}.player-item input[type=number]{width:60px;flex:none}.player-item input:nth-child(2){flex:2;min-width:100px}.player-item input:nth-child(3){flex:3;min-width:100px}.party-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.party-player{border:1px solid var(--border);border-radius:var(--radius);padding:12px}.party-items{margin:4px 0 0;padding-left:18px}.party-notes{white-space:pre-wrap;margin-top:6px}.party-give input:first-child{flex:1;min-width:120px}.update-banner.save-problem{border-color:var(--danger);bottom:72px;max-width:min(640px,calc(100vw - 32px))}.update-banner{position:fixed;z-index:50;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 24px #00000040;max-width:calc(100vw - 32px);flex-wrap:wrap}.help-link{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:none;border:1px solid var(--border);border-radius:99px;font-size:13px;font-weight:700;text-decoration:none;color:var(--muted)}.help-link:hover{border-color:var(--accent);color:var(--accent)}.help-topics{display:flex;flex-direction:column;gap:8px}.help-topic{padding:0}.help-topic summary{cursor:pointer;padding:12px 16px;font-weight:600;font-size:16px;list-style-position:inside}.help-topic[open] summary{border-bottom:1px solid var(--border)}.help-icon{display:inline-block;width:1.6em;text-align:center}.help-body{padding:4px 16px 12px}.help-body p,.help-body ol,.help-body ul{margin:8px 0}.help-body li{margin:4px 0}.help-body code{background:var(--accent-soft);padding:0 4px;border-radius:4px}.tour-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.tour{width:100%;max-width:440px;box-shadow:0 8px 32px #0000004d;outline:none}.tour-icon{font-size:40px;line-height:1}.tour-dots{display:flex;gap:6px}.tour-dot{width:10px;height:10px;min-height:0;padding:0;border-radius:99px;background:var(--border);border:none}.tour-dot.active{background:var(--accent)}@media (pointer: coarse){.tour-dot{width:14px;height:14px;min-height:0}}.share-box{border:1px dashed var(--border);border-radius:var(--radius);padding:10px 14px}.share-box.on{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.shared-mark{font-size:12px}.run-button{font-size:16px;padding:10px 20px}.run-small{padding:3px 12px;font-size:13px;margin-left:8px;vertical-align:middle}@media (pointer: coarse){.run-small{min-height:34px}}.run-ready{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border-color:var(--accent)}.player-popup{position:absolute;left:50%;bottom:16px;transform:translate(-50%);width:min(92%,380px);display:flex;flex-direction:column;gap:8px;background:#211f25;border:1px solid #e3934a;color:#ece8e1;border-radius:var(--radius);padding:12px 14px;box-shadow:0 6px 24px #00000080}.player-popup button:not(.primary){background:#2c2a31;color:#ece8e1;border-color:#36333b}.player-rolls{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.player-rolls li{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid #36333b;border-radius:var(--radius);background:#1a191f}.player-rolls li.mine{border-color:#e3934a}.player-roll-total{font-size:22px;font-weight:700;color:#e3934a;min-width:36px;text-align:center;font-variant-numeric:tabular-nums}.combat-now{padding:6px 10px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius)}.combat-list li{flex-direction:column;align-items:stretch;gap:4px}.combat-list li.active{font-weight:400;color:var(--text);box-shadow:inset 4px 0 0 var(--accent)}.combat-list li.active .combat-name{color:var(--accent);font-weight:700}.combat-list li.down .combat-name{text-decoration:line-through;opacity:.6}.combat-row{display:flex;align-items:center;gap:8px}.combat-name{flex:1;text-align:left;color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:6px;padding:2px 0}.side-dot{width:9px;height:9px;border-radius:50%;flex:none;background:#b03030}.side-dot.party{background:#2f5d9e}.hp-pill{font-variant-numeric:tabular-nums;font-size:13px;border:1px solid var(--border);border-radius:99px;padding:0 8px}.combat-conditions{display:flex;flex-wrap:wrap;gap:4px;padding-left:36px}.condition{display:inline-flex;align-items:center;gap:2px;font-size:12px;padding:0 2px 0 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent)}.combat-editor{padding:8px 0 6px 8px;border-top:1px dashed var(--border);margin-top:2px}.combat-editor .num{width:60px}.combat-editor form.row>input:not(.num){flex:1;min-width:100px}.combat-strip{flex:none;background:#1a191f;border-bottom:1px solid #36333b;padding:6px 10px}.combat-strip.my-turn{background:#13303b;border-bottom-color:#50d2ff}.combat-strip-head{display:flex;align-items:center;gap:10px;font-size:14px}.combat-round{color:#a39d93;white-space:nowrap}.combat-turn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-turn .combat-turn strong{color:#50d2ff;font-size:17px}.combat-strip .link-button{color:#e3934a}.combat-strip-list{list-style:none;margin:6px 0 0;padding:0 0 2px;display:flex;gap:6px;overflow-x:auto}.combat-strip-list.open{flex-direction:column}.combat-strip-list li{flex:none;display:flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:99px;border:1px solid #36333b;background:#211f25;font-size:13px;white-space:nowrap;border-left:3px solid #b03030}.combat-strip-list li.party{border-left-color:#2f5d9e}.combat-strip-list.open li{border-radius:var(--radius);white-space:normal}.combat-strip-list li.active{border-color:#50d2ff;background:#16323d;font-weight:700}.combat-strip-list li.mine .combat-strip-name:after{content:" (you)";color:#a39d93;font-weight:400}.combat-strip-list li.down{opacity:.5;text-decoration:line-through}.combat-strip-hp,.combat-strip-cond{color:#a39d93;font-weight:400;font-size:12px}.combat-strip-list.open{max-height:40vh;overflow-y:auto}.combat-strip-aim{margin-top:6px;font-size:13px;color:#a39d93}.combat-strip-aim.set{color:#ece8e1;font-size:15px}.combat-strip-aim.set strong{color:#f0a04b}.combat-strip-list li.aimed{border-color:#e3934a;background:#3a2a1c;box-shadow:0 0 0 2px #e3934a73;font-weight:700}.player-page .combat-strip-list button.combat-strip-pick{background:none;border:none;padding:0;min-height:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline dotted #6b665e;text-underline-offset:3px}.run-tabs{display:none}.run-part{display:contents}.phone-run{display:none}@media (max-width: 760px){.layout{display:block;min-height:100vh}.nav{position:fixed;top:auto;height:auto;left:0;right:0;bottom:0;z-index:20;flex-direction:row;justify-content:space-around;gap:0;padding:4px 4px calc(4px + env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--border);border-bottom:none;overflow:visible}.nav{background:color-mix(in srgb,var(--panel) 90%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.nav .brand,.nav .spacer{display:none}.nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 2px;font-size:11px;min-width:0}.nav a span:last-child{overflow:hidden;text-overflow:ellipsis;max-width:100%}.nav-icon{display:flex;height:28px;width:52px;align-items:center;justify-content:center}.nav-icon .icon{width:22px;height:22px}.nav a.active{background:none;box-shadow:none}.nav a.active .nav-icon{background:var(--accent-soft);border-radius:99px;width:52px}main{padding:12px 12px calc(84px + env(safe-area-inset-bottom))}.update-banner{bottom:calc(70px + env(safe-area-inset-bottom))}.run-grid{display:block;column-count:auto}.run-grid>.stack{display:block}.run-grid .panel{margin-bottom:12px}.run-tabs{display:grid;grid-template-columns:repeat(3,1fr);position:sticky;top:0;z-index:10;gap:4px;margin:0 -12px;padding:8px 12px;background:var(--bg);border-bottom:1px solid var(--border)}.run-tabs button{border-radius:99px;padding:6px 8px;min-height:36px;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.run-tabs .tab-badge{font-size:11px;opacity:.85;margin-left:4px}.run-part:not(.on){display:none}.run-part.on{display:block}.run-part.on>*+*{margin-top:12px}.run-head h1{font-size:19px}.phone-run{display:flex;position:fixed;left:12px;right:12px;bottom:calc(68px + env(safe-area-inset-bottom));z-index:15;justify-content:center;font-size:17px;min-height:48px;box-shadow:0 4px 14px #00000040}.has-phone-run{padding-bottom:64px}.map-workspace{height:auto}.map-workspace .map-canvas{order:1;height:58vh;flex:none}.map-workspace .map-loading{order:1}.map-workspace .map-options{order:2;max-height:none}.map-tools{flex-wrap:wrap}.map-toolbar{gap:6px 8px}.map-viewer{height:55vh;min-height:280px}}@media (max-width: 760px){.prep:has(textarea:focus,input:not([type=checkbox]):not([type=radio]):focus) .phone-run{display:none}}.table-detail{min-width:0;scroll-margin-top:8px}.foes{display:flex;flex-direction:column;gap:6px}.foe-row{display:grid;grid-template-columns:70px minmax(110px,2fr) 90px 64px minmax(110px,2fr) 32px;gap:6px;align-items:center}.foe-head{padding:0 2px}input.invalid{border-color:var(--danger)}@media (max-width: 760px){.foe-row{grid-template-columns:72px 1fr 1fr 32px;grid-template-areas:"count name name x" "hp init note note";padding-bottom:8px;border-bottom:1px solid var(--border)}.foe-row>:nth-child(1){grid-area:count}.foe-row>:nth-child(2){grid-area:name}.foe-row>:nth-child(3){grid-area:hp}.foe-row>:nth-child(4){grid-area:init}.foe-row>:nth-child(5){grid-area:note}.foe-row>:nth-child(6){grid-area:x}.foe-head{display:none}}.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}.crumb-step{display:inline-flex;align-items:center;gap:4px;min-width:0}.crumb{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 12px;border-radius:99px;background:var(--panel);border:1px solid var(--border);color:var(--text);font-size:13.5px;font-weight:500;box-shadow:var(--shadow-sm);transition:border-color .15s,color .15s,background .15s;max-width:260px}.crumb .icon{color:var(--accent);flex:none}.crumb-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)}.crumb-sep{color:var(--muted);font-size:16px;padding:0 2px}.map-toolbar .crumbs{flex-basis:100%}@media (pointer: coarse){.crumb{min-height:38px;padding:6px 14px;font-size:14.5px}}@media (max-width: 760px){.crumbs{flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px 0}.crumb-step{flex:none}.crumbs::-webkit-scrollbar{display:none}.crumb{max-width:180px}}.log-recap{font-size:1.05rem;line-height:1.55;white-space:pre-wrap}.last-time{border-left:3px solid var(--accent)}.dnd-import,.dnd-sheet{border:1px solid #36333b;border-radius:var(--radius);padding:12px;background:#1a191f}.dnd-sheet h2,.dnd-import h2{margin:0}.dnd-who input:not([type=number]){flex:1 1 160px;min-width:0}.dnd-num{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#a39d93}.dnd-num input{width:76px;font-size:15px}.dnd-hp{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.dnd-hp-now{display:flex;flex-direction:column;gap:6px;flex:1 1 220px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);--hp: #4caf6a}.dnd-hp-now strong{font-size:48px;line-height:1;color:var(--hp);font-variant-numeric:tabular-nums;transition:color .4s}.dnd-hp-now .hp-bar{height:10px;border-radius:99px;background:var(--panel-2);overflow:hidden}.dnd-hp-now .hp-bar>div{height:100%;background:var(--hp);border-radius:99px;transition:width .5s ease,background .4s}.dnd-hp-now .hp-state{color:var(--hp);font-weight:650}.dnd-hp-now.hp-hurt{--hp: #c9b03a}.dnd-hp-now.hp-bloodied{--hp: #e08a2c}.dnd-hp-now.hp-critical{--hp: #e04a3a;background:#e04a3a14}.dnd-hp-now.hp-down{--hp: #b0302a;background:#b0302a24}.dnd-hp-now.hit{animation:hp-hit .6s ease}.hp-lost{color:#e04a3a;font-weight:750;font-size:22px;animation:hp-lost 1.6s ease forwards}@keyframes hp-hit{0%,to{transform:none}20%{transform:translate(-6px);box-shadow:0 0 0 3px #e04a3a80}40%{transform:translate(5px)}60%{transform:translate(-3px)}}@keyframes hp-lost{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:none}80%{opacity:1}to{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion: reduce){.dnd-hp-now.hit,.hp-lost{animation:none}}.dnd-nums{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.dnd-abilities{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.dnd-ability{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid #36333b;border-radius:var(--radius);padding:8px 6px;text-align:center}.dnd-ability strong{font-size:22px;line-height:1}.dnd-ability input[type=number]{width:56px;text-align:center;padding:2px 4px}.dnd-ability label,.dnd-save{display:flex;align-items:center;gap:4px;color:#a39d93}.dnd-ability input[type=checkbox]{width:auto}.dnd-skills{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 16px}.dnd-skills li{display:flex;align-items:center;gap:8px;font-size:14px}.dnd-skills li span{flex:1}.player-page-body button.dnd-prof{width:14px;height:14px;min-height:0;padding:0;border-radius:50%;border:2px solid #6b665e;background:transparent}.player-page-body button.dnd-prof.p1{background:#e3934a;border-color:#e3934a}.player-page-body button.dnd-prof.p2{background:#e3934a;border-color:#ece8e1;box-shadow:0 0 0 2px #e3934a}.party-stats{gap:10px}.pstat{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2)}.pstat-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.pstat-main{display:flex;align-items:center;gap:12px}.pstat-ac,.pstat-hp{display:inline-flex;align-items:baseline;gap:4px;font-size:20px;font-weight:650;font-variant-numeric:tabular-nums}.pstat-ac>span:first-child,.pstat-hp>span:first-child{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.04em}.pstat-hp .muted{font-size:14px;font-weight:500}.pstat-hp em{font-size:13px;font-style:normal;color:#2f7fb5}.pstat-hp.low{color:#b7791f}.pstat-hp.down{color:var(--danger)}.pstat-meter{flex:1;height:6px;border-radius:3px;background:var(--border);overflow:hidden;min-width:40px}.pstat-meter span{display:block;height:100%;background:#3c8a4a}.pstat-meter span.low{background:#d69e2e}.pstat-meter span.down{background:var(--danger)}.pstat-line{display:flex;flex-wrap:wrap;gap:4px 12px}.pstat-line .prof{font-weight:650}.monster-results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:420px;overflow:auto}.monster-result{gap:8px;padding:4px 6px;border-radius:8px;background:var(--panel-2)}.monster-name{font-weight:600}.foe-item{display:flex;flex-direction:column;gap:4px}.foe-monster{display:flex;gap:10px;align-items:baseline;padding-left:76px}@media (max-width: 720px){.foe-monster{padding-left:0}}.stat-block{font-size:13.5px;line-height:1.45;background:#fdf6e8;color:#2a2118;border:1px solid #e0cfae;border-top:3px solid #9c2b1b;border-bottom:3px solid #9c2b1b;border-radius:6px;padding:10px 12px;max-width:560px}.stat-block hr{border:0;border-top:2px solid #9c2b1b;opacity:.6;margin:6px 0}.stat-block b{color:#7a1f12}.sb-name{font-size:20px;font-weight:700;color:#7a1f12;font-variant:small-caps;letter-spacing:.02em}.sb-meta{font-style:italic}.sb-scores{display:grid;grid-template-columns:repeat(6,1fr);text-align:center}.sb-scores>div{display:flex;flex-direction:column}.sb-head{font-size:16px;font-variant:small-caps;color:#7a1f12;border-bottom:1px solid #9c2b1b;margin:8px 0 4px}.sb-block{margin:4px 0}.sb-credit{margin-top:8px;font-size:11px;color:#7b6a55}.stat-block a{color:#7a1f12}.difficulty{font-weight:650;padding:1px 8px;border-radius:999px}.d-trivial{background:var(--panel-2);color:var(--muted)}.d-easy{background:#e3f1e5;color:#2c6b37}.d-medium{background:#fbf0d8;color:#8a6111}.d-hard{background:#fbe3d4;color:#a64a12}.d-deadly{background:#f7d9d7;color:#a12a20}.roll-anim{position:fixed;z-index:60;left:50%;bottom:84px;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:12px 20px 12px 14px;background:#18161cf5;color:#ece8e1;border:1px solid #e3934a;border-radius:18px;box-shadow:0 12px 40px #00000073;max-width:calc(100vw - 32px);cursor:pointer;animation:roll-in .25s ease-out}.roll-die{position:relative;width:76px;height:76px;flex:none}.roll-die svg{width:100%;height:100%;overflow:visible}.roll-die svg>*{fill:#e3934a;stroke:#f6c48d;stroke-width:3;stroke-linejoin:round}.roll-die .die-facet{fill:#f0a65c;stroke:#fbd9b2;stroke-width:2}.roll-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding-top:8px;font-size:26px;font-weight:800;color:#1b1208;font-variant-numeric:tabular-nums}.roll-anim.tumbling .roll-die{animation:die-tumble 1.1s cubic-bezier(.25,.7,.3,1) both}.roll-anim.landed .roll-die{animation:die-land .35s ease-out}.roll-text{display:flex;flex-direction:column;min-width:0}.roll-who{font-size:14px;color:#c9c3ba;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roll-who strong{color:#ece8e1}.roll-total{font-size:36px;font-weight:800;line-height:1.05;color:#f0a04b;font-variant-numeric:tabular-nums}.roll-detail{font-size:12px;color:#a39d93}.roll-note{font-size:13px;font-weight:600;color:#f2ebe0;margin-top:2px}.roll-anim.nat20{border-color:#f5d26b;box-shadow:0 0 0 3px #f5d26b59,0 12px 40px #00000073}.roll-anim.nat20 .roll-die svg>*{fill:#f5c542;stroke:#fff1b8}.roll-anim.nat20 .roll-total,.roll-anim.nat20 .roll-detail{color:#f5d26b}.roll-anim.nat1{border-color:#c0392b}.roll-anim.nat1 .roll-die svg>*{fill:#b03030;stroke:#e07a7a}.roll-anim.nat1 .roll-face{color:#fff}.roll-anim.nat1 .roll-total,.roll-anim.nat1 .roll-detail{color:#e07a7a}@keyframes roll-in{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@keyframes die-tumble{0%{transform:translate(-120px,-60px) rotate(-200deg) scale(.6)}35%{transform:translate(-30px,10px) rotate(120deg) scale(1.05)}55%{transform:translate(10px,-14px) rotate(260deg) scale(.95)}75%{transform:translate(4px,4px) rotate(330deg) scale(1.02)}to{transform:translate(0) rotate(360deg) scale(1)}}@keyframes die-land{0%{transform:scale(1.18)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.roll-anim,.roll-anim .roll-die{animation:none!important}}.dnd-roll{background:none;border:none;padding:0;min-height:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline dotted #6b665e;text-underline-offset:3px}.dnd-roll:hover{color:#f0a04b}.dnd-ability .dnd-roll strong{font-size:22px;line-height:1}.dnd-mode button{padding:4px 10px;min-height:0;font-size:13px}.dnd-rollbar{gap:8px}.player-page-body .dnd-mode button.on{background:#3a2a1c;color:#f0a04b;border-color:#e3934a}.free-packs{padding:0;margin:0;display:grid;gap:10px}.free-packs li{list-style:none;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);gap:4px}.dnd-attacks{gap:6px}.dnd-attack{gap:8px;flex-wrap:wrap}.dnd-attack-name{flex:1;min-width:100px;font-weight:600}.dnd-attack button{padding:4px 10px;min-height:0;font-size:13px}.dnd-attack-edit{gap:6px;flex-wrap:wrap}.dnd-attack-edit input{flex:1;min-width:70px}.dnd-attack-edit input.num{flex:0 0 64px;min-width:0}.dnd-attack-edit input.invalid{border-color:#c0392b}.sb-roll{background:none;border:none;padding:0 2px;min-height:0;font:inherit;color:var(--accent);text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer;border-radius:4px}.sb-roll:hover{background:var(--accent-soft)}.aimed-by{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.gm-aim{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0}.gm-aim button{padding:4px 10px;min-height:32px}.combat-list li.aimed{box-shadow:inset 3px 0 0 var(--accent)}.damage-pending{border:1px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius);padding:8px 10px;gap:6px}.dnd-spells{gap:6px}.dnd-slots{gap:4px}.dnd-pips{display:inline-flex;gap:6px;flex-wrap:wrap}.dnd-pip{width:18px;height:18px;min-height:0;padding:0;border-radius:50%;border:2px solid currentColor;background:transparent;opacity:.5}.dnd-pip.on{background:currentColor;opacity:1}.player-page-body .dnd-pips button.dnd-pip{background:transparent;border:2px solid #6b665e;opacity:1}.player-page-body .dnd-pips button.dnd-pip.on{background:#e3934a;border-color:#e3934a}.dnd-cast-note{color:#9fe0c3}.dnd-spell{gap:8px;flex-wrap:wrap}.dnd-spell-name{flex:1;min-width:100px;font-weight:600}.dnd-spell button{padding:4px 10px;min-height:0;font-size:13px}.dnd-crit{background:#f5d26b;color:#3a2a00;border-color:#c9a227;font-weight:700}.dnd-slot-edit{gap:6px;flex-wrap:wrap;align-items:center}.dnd-slot-max{display:inline-flex;flex-direction:column;align-items:center;gap:2px}.dnd-slot-max input{width:48px}.dnd-roll-tag{font-size:12px;padding:1px 8px;border-radius:999px;background:#e3934a26;color:#f0a04b;white-space:nowrap}.dnd-cast-at{width:auto;padding:3px 6px;min-height:0;font-size:13px}.dnd-spell-row{gap:4px}.dnd-spell .link-button.dnd-spell-name,.dnd-spell-results .link-button.dnd-spell-name{text-align:left;color:inherit;text-decoration:underline dotted;text-underline-offset:3px}.dnd-spell-text{border-left:3px solid #4a4650;padding:2px 10px}.dnd-spell-text p{margin:6px 0 0;white-space:pre-line}.dnd-spell-facts{font-weight:600;color:#f0a04b}.dnd-spell-srd{margin-top:6px}.dnd-spell-picker{border:1px solid #36333b;border-radius:var(--radius);padding:10px;gap:8px;background:#141318}.player-page-body .dnd-spells select{background:#211f25;color:#ece8e1;border-color:#36333b}.dnd-spell-filters{gap:6px;flex-wrap:wrap}.dnd-spell-filters input{flex:1;min-width:140px}.dnd-spell-filters select{width:auto}.dnd-spell-results{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:360px;overflow-y:auto}.dnd-spell-results li{border-bottom:1px solid #2c2a31;padding-bottom:6px}.dnd-spell-results .row{gap:8px;flex-wrap:wrap}.dnd-spell-results button:not(.link-button){padding:4px 12px;min-height:0;font-size:13px;margin-left:auto}.dnd-targets{gap:6px;border:1px solid #36333b;border-radius:var(--radius);padding:8px 10px;background:#141318}.dnd-target-head{font-size:15px}.dnd-target-head strong{color:#f0a04b}.dnd-aim-name{color:#f0a04b;font-weight:600}.dnd-target-list{gap:6px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.dnd-target-list button{padding:4px 12px;min-height:0;font-size:13px;white-space:nowrap}.dnd-target-list button.ally:not(.primary){border-style:dashed}.loot{gap:4px}.loot-result{border-left:3px solid var(--accent);padding:4px 8px}.encounter-meter{gap:4px}.sound-pad.scene{min-height:46px}.scene-edit{border:1px solid var(--border);border-radius:12px;padding:10px;margin:0}.sound-chips{display:flex;flex-wrap:wrap;gap:6px}.chip.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.panel>h2:first-child,.panel>.row:first-child>h2{display:flex;align-items:center;gap:8px}.panel>h2:first-child:before,.panel>.row:first-child>h2:before{content:"";width:6px;height:6px;border-radius:99px;background:var(--accent);box-shadow:0 0 8px var(--accent);opacity:.85;flex:none}.panel{transition:border-color .2s,box-shadow .2s}.panel:focus-within{border-color:var(--border-strong)}.pips{display:inline-flex;flex-wrap:wrap;gap:4px}.pip{width:18px;height:18px;min-height:0;padding:0;border-radius:5px;border:1.5px solid var(--border-strong);background:var(--panel-2);box-shadow:none}.pips-hp .pip.on{background:var(--danger);border-color:var(--danger)}.pips-stress .pip.on{background:#8a6bbf;border-color:#8a6bbf}.pips-hope .pip{border-radius:99px}.pips-hope .pip.on{background:var(--accent);border-color:var(--accent);box-shadow:0 0 6px var(--accent)}.fear-track button{min-height:0;padding:2px 10px}.fear-count{min-width:2ch;text-align:center;font-size:20px;font-weight:700;color:#8a6bbf;font-variant-numeric:tabular-nums}.hf-roll{flex-wrap:wrap}.hf-result{border-left:3px solid var(--accent);padding:4px 10px}.hf-result.hf-fear{border-color:#8a6bbf}.hf-result.hf-critical{border-color:var(--accent);background:var(--panel-2)}.hf-character{border-top:1px solid var(--border);padding-top:8px;gap:6px}.hf-tracks{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center}.hf-tracks .row{gap:8px;flex-wrap:nowrap}.hf-tracks .num{width:52px}.table-tools-picker{flex-wrap:wrap}.candle-row{display:flex;gap:6px;justify-content:space-between;padding:6px 2px 0}.candle{position:relative;width:14px;height:38px;border-radius:3px 3px 2px 2px;background:linear-gradient(#f3e7cf,#d9c6a1);border:1px solid var(--border-strong);margin-top:14px}.candle .flame{position:absolute;left:50%;top:-15px;width:10px;height:14px;margin-left:-5px;border-radius:50% 50% 45% 45%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff6c8,#ffb13b 55%,#e2621b);box-shadow:0 0 10px #ffb13b;animation:flicker 2.2s ease-in-out infinite}.candle:nth-child(odd) .flame{animation-delay:-1.1s}.candle.out{opacity:.55}.candle.out .flame{box-shadow:none;width:2px;margin-left:-1px;height:8px;top:-9px;border-radius:1px;background:var(--muted);animation:none}@keyframes flicker{0%,to{transform:scale(1)}30%{transform:scale(.92,1.06) rotate(-2deg)}60%{transform:scale(1.05,.95) rotate(2deg)}}@media (prefers-reduced-motion: reduce){.candle .flame{animation:none}}.candle-result{border-left:3px solid var(--accent);padding:4px 10px;display:grid;gap:4px}.candle-result.fail{border-color:var(--danger)}.pool-dice{display:flex;flex-wrap:wrap;gap:4px}.pool-die{width:24px;height:24px;display:inline-grid;place-items:center;border-radius:6px;border:1px solid var(--border-strong);font-weight:600;font-size:13px}.pool-die.six{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.pool-die.one{opacity:.45;text-decoration:line-through}.heard-notes{align-items:center}.chip.heard{border-style:dashed}.chip.heard.fresh{border-style:solid;border-color:var(--accent);animation:heard-glow 2.4s ease-out}@keyframes heard-glow{0%{box-shadow:0 0 0 0 var(--accent);background:var(--accent);color:var(--accent-text)}to{box-shadow:0 0 0 8px transparent}}@media (prefers-reduced-motion: reduce){.chip.heard.fresh{animation:none}}.now-playing{display:grid;gap:4px;padding:8px 10px;border:1px solid var(--accent);border-radius:10px;font-size:13px}.now-playing-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,1.4fr) auto;align-items:center;gap:8px}.now-playing-row input[type=range]{padding:0;accent-color:var(--accent);width:100%}.now-playing-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-weight:600}.sound-group{gap:4px}.sound-mixer{display:grid;gap:4px;font-size:13px}.sound-mix-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,1.4fr) 2.2em;align-items:center;gap:8px}.sound-mix-row input[type=range]{padding:0;accent-color:var(--accent);width:100%}.sound-mix-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sound-mix-row.playing .sound-mix-name{color:var(--accent);font-weight:600}.sound-mix-value{text-align:right;font-variant-numeric:tabular-nums}.spotlight-rows{list-style:none;margin:0;padding:0;display:grid;gap:4px}.spotlight-rows li{display:flex;align-items:center;gap:4px}.spotlight-row{flex:1;display:grid;grid-template-columns:minmax(70px,.8fr) 1fr;grid-template-rows:auto auto;gap:2px 10px;align-items:center;text-align:left;padding:6px 8px;min-height:0;background:none;box-shadow:none;border:1px solid transparent}.spotlight-row:hover{border-color:var(--border)}.spotlight-name{font-weight:600;grid-row:span 2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spotlight-bar{height:8px;border-radius:99px;background:var(--panel-2);border:1px solid var(--border);overflow:hidden}.spotlight-bar span{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .4s}.spotlight-bar span.cold{background:#7d8fb3}.spotlight-meta{font-size:12.5px}.spotlight-nudge{border-left:3px solid var(--accent);padding:4px 10px;background:var(--panel-2);border-radius:0 8px 8px 0}.tool-intro{display:grid;gap:2px;margin-top:-4px}.tool-intro details summary{cursor:pointer;color:var(--accent);font-weight:500;width:fit-content}.tool-intro ol{margin:6px 0 2px;padding-left:20px;display:grid;gap:3px}.table-tool-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;width:100%}.table-tool-choice{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);cursor:pointer}.table-tool-choice.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.table-tool-choice input{margin-top:3px}.pirate-sheet{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}.pirate-head{display:grid;gap:2px}.pirate-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0}.pirate-stats div{text-align:center;padding:6px 0;border:1px solid var(--border);border-radius:8px}.pirate-stats dt{font-size:12px;color:var(--muted)}.pirate-stats dd{margin:0;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.pirate-hp{display:flex;align-items:center;gap:10px}.whisper-note{margin:8px 12px 0;padding:10px 12px;border:1px solid var(--accent);border-radius:12px;background:var(--panel-2);display:grid;gap:4px;justify-items:start}.whisper-note-head{font-size:12.5px;font-weight:600;color:var(--accent)}.whisper-note p{margin:0;font-style:italic;white-space:pre-wrap;overflow-wrap:anywhere}.roll-anim.max{border-color:#7fc8a9;box-shadow:0 0 0 3px #7fc8a94d,0 12px 40px #00000073}.roll-anim.max .roll-die svg>*{fill:#5fb38f;stroke:#c4ecd9}.roll-anim.max .roll-total,.roll-anim.max .roll-detail{color:#9fe0c3}.roll-sound{align-self:flex-start;background:none;border:none;box-shadow:none;padding:2px 4px;min-height:0;font-size:15px;opacity:.7;color:inherit}.roll-sound:hover{opacity:1}.confetti{position:absolute;left:52px;top:50%;width:0;height:0;pointer-events:none}.confetti span{position:absolute;width:7px;height:11px;border-radius:2px;opacity:0;animation:confetti-burst 1.3s cubic-bezier(.15,.7,.3,1) forwards}@keyframes confetti-burst{0%{opacity:1;transform:translate(0) rotate(0) scale(.6)}70%{opacity:1}to{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 60px)) rotate(var(--rot)) scale(1)}}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:260px;overflow-y:auto;font-size:13px}.timeline li{display:grid;grid-template-columns:4.2em 1.4em 1fr;gap:6px;align-items:baseline;padding:3px 4px;border-radius:6px}.timeline li:nth-child(odd){background:var(--panel-2)}.timeline-time{color:var(--muted);font-variant-numeric:tabular-nums}.timeline-icon{text-align:center}.timeline-text{overflow-wrap:anywhere}.timeline-fight .timeline-text{font-weight:600}.timeline-scene .timeline-text{color:var(--accent)}.button-like{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);cursor:pointer}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-content:center;justify-items:center;gap:12px;padding:16px;background:#0a090cf0}.reveal-overlay img{max-width:min(100%,900px);max-height:74vh;object-fit:contain;border-radius:10px;box-shadow:0 12px 40px #00000080}.reveal-caption{margin:0;color:#ece8e1;font-family:var(--font-display, serif);font-size:20px;text-align:center}.vote-card{margin:8px 12px 0;padding:10px 12px;border:1px solid var(--accent);border-radius:12px;background:var(--panel-2);display:grid;gap:8px}.vote-question{font-family:var(--font-display, serif);font-size:18px;font-weight:600}.vote-options{list-style:none;margin:0;padding:0;display:grid;gap:6px}.vote-options li{position:relative}.vote-option{position:relative;width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;z-index:1;background:transparent}.vote-option.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;font-weight:600}.vote-count{font-variant-numeric:tabular-nums;color:var(--muted)}.vote-bar{position:absolute;left:0;top:0;bottom:0;border-radius:8px;background:var(--accent-soft);opacity:.6;pointer-events:none;transition:width .3s}.mood-picker{position:fixed;right:12px;bottom:12px;z-index:20;display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:calc(100vw - 24px)}.mood-toggle,.mood-row button{background:#211f25eb;color:#ece8e1;border:1px solid #36333b;border-radius:999px;padding:8px 12px}.mood-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;padding:6px;background:#121117f0;border:1px solid #36333b;border-radius:16px}.mood-row button{display:inline-flex;align-items:center;gap:6px;font-size:14px}.mood-row button.on{border-color:#e3934a;background:#3a2a1c}.mood-row .mood-close{padding:8px 12px}@media (max-width: 480px){.mood-row .mood-label{display:none}.mood-row button{font-size:20px;padding:6px 10px}}.mood-bar{display:flex;gap:2px;border-radius:var(--radius);overflow:hidden}.mood-seg{padding:4px 6px;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:2.6em;text-align:center}.mood-fun{background:#f3c27a;color:#3a2a1c}.mood-tense{background:#e59a8a;color:#3a1c1c}.mood-meh{background:#c9c4bb;color:#2b2a28}.mood-lost{background:#a9c2e0;color:#1c2a3a}.mood-break{background:#b8d6b0;color:#1f331b}.mood-nudge{padding:6px 10px;border-left:3px solid var(--accent, #e3934a);background:var(--panel-2)}.mood-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.sky-choices{display:flex;flex-wrap:wrap;gap:4px}.sky-choices button{padding:6px 10px}.sky-choices button.on{background:var(--accent, #e3934a);color:#1a191f;border-color:transparent}.sky-badge{white-space:nowrap;color:#a39d93;font-size:13px;padding:0 8px}.sky-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.sky-overlay>div{position:absolute;top:0;right:0;bottom:0;left:0}.sky-tint{transition:background 2s ease}.sky-dawn .sky-tint{background:linear-gradient(180deg,#ff967838,#ffc89614)}.sky-dusk .sky-tint{background:linear-gradient(180deg,#783c8c4d,#ff783c2e)}.sky-night .sky-tint{background:radial-gradient(ellipse at center,#0a143c59,#05081eb3)}.sky-storm.sky-day .sky-tint,.sky-rain.sky-day .sky-tint{background:#28324640}.sky-rain .sky-rain,.sky-storm .sky-rain{background-image:repeating-linear-gradient(105deg,transparent 0 22px,rgba(180,200,230,.35) 22px 23px,transparent 23px 47px);background-size:120px 120px;animation:sky-fall .45s linear infinite}.sky-storm .sky-rain{animation-duration:.3s}.sky-snow{background-image:radial-gradient(circle,rgba(255,255,255,.85) 1.5px,transparent 2.5px),radial-gradient(circle,rgba(255,255,255,.6) 1px,transparent 2px);background-size:90px 90px,60px 60px;background-position:0 0,30px 20px;animation:sky-snow 6s linear infinite}.sky-fog{background:radial-gradient(ellipse at 30% 40%,rgba(220,225,230,.45),transparent 60%),radial-gradient(ellipse at 75% 70%,rgba(220,225,230,.4),transparent 55%),#c8cdd233;animation:sky-drift 18s ease-in-out infinite alternate}.sky-wind{background-image:repeating-linear-gradient(175deg,transparent 0 60px,rgba(230,230,220,.12) 60px 62px,transparent 62px 140px);background-size:400px 140px;animation:sky-gust 1.6s linear infinite}.sky-flash{background:#e6ebffd9;opacity:0;animation:sky-flash 13s infinite}@keyframes sky-fall{to{background-position:-30px 120px}}@keyframes sky-snow{to{background-position:40px 90px,0 80px}}@keyframes sky-drift{to{transform:translate(6%)}}@keyframes sky-gust{to{background-position:400px 0}}@keyframes sky-flash{0%,92%,to{opacity:0}93%{opacity:.8}94%{opacity:.1}95%{opacity:.6}97%{opacity:0}}@media (prefers-reduced-motion: reduce){.sky-overlay>div{animation:none!important}.sky-flash{display:none}}.survey-card{position:fixed;left:12px;right:12px;bottom:64px;z-index:19;max-width:420px;margin:0 auto;display:flex;flex-direction:column;gap:8px;padding:12px;background:#121117f5;border:1px solid #36333b;border-radius:16px}.survey-question{font-weight:650;color:#e3934a}.survey-choices{display:flex;flex-wrap:wrap;gap:6px}.survey-choices button{background:#211f25;color:#ece8e1;border:1px solid #36333b;border-radius:999px;padding:8px 12px}.survey-choices button.on{background:#3a2a1c;border-color:#e3934a}.survey-card textarea{background:#211f25;color:#ece8e1;border-color:#36333b}.survey-bar{display:flex;gap:2px;border-radius:var(--radius);overflow:hidden}.survey-seg{padding:4px 6px;white-space:nowrap;text-align:center;min-width:2.6em;font-variant-numeric:tabular-nums}.survey-great{background:#f3c27a;color:#3a2a1c}.survey-ok{background:#c9c4bb;color:#2b2a28}.survey-rough{background:#e59a8a;color:#3a1c1c}.survey-notes{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.locked{border-left:3px solid var(--accent)}div.locked{padding:8px 12px;background:var(--accent-soft);border-radius:6px}.full-features{margin:0;padding-left:20px}.full-features li{margin:4px 0}.session-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.session-card{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);border-left:4px solid var(--border)}.session-card.prep{border-left-color:var(--accent)}.session-card.played{border-left-color:#4caf6a}.session-num{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:750;font-size:17px;text-decoration:none;background:var(--panel);border:1px solid var(--border);color:var(--text)}.session-card.prep .session-num{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.session-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.session-title{font-weight:650;font-size:16px;text-decoration:none;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-title:hover{color:var(--accent)}.session-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.session-status{font-weight:650;padding:1px 8px;border-radius:99px;font-size:12px}.session-status.prep{color:var(--accent);background:var(--accent-soft)}.session-status.played{color:#3f9a5a;background:#4caf6a24}.session-blurb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-recap,.session-card .run-small{flex:none}.maker-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 900px){.maker-grid{grid-template-columns:minmax(0,1fr)}.maker-preview{order:-1}}.maker-preview{position:sticky;top:12px}@media (max-width: 900px){.maker-preview{position:static}}.maker-form label.stack{gap:4px}.maker-form input[type=checkbox]{width:auto;flex:none}.maker-scores{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;text-align:center}.maker-scores input.num{width:100%;text-align:center}@media (max-width: 480px){.maker-scores{grid-template-columns:repeat(3,minmax(0,1fr))}}.maker-sub,.maker-blocks{border-top:1px solid var(--border);padding-top:8px}.maker-block{gap:4px}.maker-attack{background:var(--panel-2);border-radius:8px;padding:8px}.sb-flavor{font-style:italic;margin:6px 0}.export-bar .row{gap:6px}.maker textarea{min-height:0}.table-photo summary{cursor:pointer;color:var(--muted)}.table-photo img,.table-photo-preview{display:block;max-width:100%;max-height:420px;object-fit:contain;border-radius:var(--radius);border:1px solid var(--border);margin-top:6px}.table-photo-import{padding:10px 12px;border:1px dashed var(--border);border-radius:var(--radius)}.keep-photo{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}.keep-photo input[type=checkbox]{width:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.crash{max-width:40rem;margin:2rem auto}.crash pre{white-space:pre-wrap;overflow-wrap:anywhere}.whisper-wrap{position:relative}.whisper-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:min(22rem,calc(100vw - 32px));box-shadow:0 8px 24px #00000040}.whisper-panel textarea{width:100%;min-height:0;height:auto;font-family:inherit;font-size:15px;resize:vertical}.whisper-panel .segmented{flex-wrap:wrap}@media (max-width: 700px){.whisper-panel{position:fixed;left:12px;right:12px;top:64px;width:auto;max-height:calc(100dvh - 80px);overflow-y:auto}}.jump-bar{display:flex;gap:6px;overflow-x:auto;position:sticky;top:0;z-index:9;margin:0 -12px;padding:8px 12px;background:var(--bg);border-bottom:1px solid var(--border);scrollbar-width:thin}.jump-bar button{flex:none;border-radius:99px;padding:4px 12px;min-height:32px;font-size:13px}.campaign-section{scroll-margin-top:56px}.new-note{position:relative}.new-note>summary{list-style:none;cursor:pointer}.new-note>summary::-webkit-details-marker{display:none}.new-note-menu{position:absolute;right:0;top:calc(100% + 4px);max-width:calc(100vw - 32px);z-index:12;display:flex;flex-direction:column;min-width:180px;padding:6px;box-shadow:0 8px 24px #0003}.new-note-menu button{justify-content:flex-start;text-align:left;white-space:nowrap;border:none;background:none}.new-note-menu .new-note-homebrew{border-top:1px solid var(--border, rgba(0, 0, 0, .12));border-radius:0;margin-top:4px;padding-top:8px}#section-notes .new-note{margin-left:auto}.new-note-menu button:hover{background:var(--hover, rgba(0, 0, 0, .05))}.run-actions{flex-wrap:wrap;justify-content:flex-end}.players-here{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.sync-dot.idle{background:var(--muted)}.run-more{position:relative}.run-more>summary{list-style:none;cursor:pointer;min-width:40px;justify-content:center}.run-more>summary::-webkit-details-marker{display:none}.run-more-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:200px;box-shadow:0 8px 24px #00000040}.run-keys ul{margin:0;padding-left:18px}kbd{display:inline-block;min-width:1.4em;padding:0 4px;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;font:inherit;font-size:.9em;text-align:center;background:var(--panel-2, var(--panel))}.stamp-pick.locked-stamp img{opacity:.55;filter:grayscale(.4)}.stamp-pick.locked-stamp span:before{content:"🔒 "}.pack-tag{font-weight:400;font-family:inherit}.pack-maps{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.pack-map{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border);border-radius:var(--radius);padding:8px;background:var(--panel)}.pack-map img{width:100%;aspect-ratio:3 / 2;object-fit:cover;background:#2b2d31;border-radius:6px}.pack-map .pack-map-blank{width:100%;aspect-ratio:3 / 2;background:#2b2d31;border-radius:6px}.pack-map button{align-self:flex-start}.run-cols{display:grid;gap:16px;align-items:start}.run-col-wrap{position:relative;min-width:0}.run-col,.run-band,.run-block{min-width:0}.run-zone{min-height:72px;padding:8px;border:2px dashed var(--border);border-radius:var(--radius-lg);gap:10px}.run-band.run-zone{min-height:56px}.run-zone-empty{padding:12px;text-align:center}.run-layout-bar{position:sticky;top:8px;z-index:12;border-color:var(--accent)}.run-card{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px}body.run-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}.run-card.dragging{opacity:.45}.run-card-text{display:flex;flex-direction:column;gap:2px;flex:1 1 180px;min-width:0}.run-card-moves{gap:4px;flex-wrap:nowrap;margin-left:auto}.run-card-moves button{padding:2px 8px;min-width:30px;justify-content:center}.run-handle{cursor:grab;font-size:22px;line-height:1;padding:6px 4px;color:var(--muted);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:6px}.run-handle:hover{color:var(--accent);background:var(--accent-soft)}.run-handle:active{cursor:grabbing}@media (pointer: coarse){.run-handle{font-size:26px;padding:10px}}.run-drop-line{height:4px;border-radius:99px;background:var(--accent);margin:-3px 0}.run-divider{position:absolute;top:0;bottom:0;right:-14px;width:12px;cursor:col-resize;touch-action:none;border-radius:99px;z-index:2}.run-divider:after{content:"";position:absolute;top:0;bottom:0;left:4px;width:4px;border-radius:99px;background:var(--border)}.run-divider:hover:after,.run-divider:focus-visible:after,.run-divider:active:after{background:var(--accent)}.run-ghost{position:fixed;z-index:50;pointer-events:none;padding:6px 12px;border-radius:99px;background:var(--accent);color:var(--accent-text);font-weight:600;font-size:14px;box-shadow:0 4px 14px #00000040}.dnd-extra>summary{cursor:pointer;font-weight:600;padding:4px 0}.dnd-extra-body{gap:6px;padding:4px 0 8px}.dnd-feature-group{gap:2px}.dnd-feature{padding:2px 0}.dnd-feature-head{gap:8px;flex-wrap:wrap;align-items:center}.dnd-feature-name{background:none;border:none;padding:0;min-height:0;font:inherit;font-weight:600;color:inherit;text-align:left;cursor:pointer;text-decoration:underline dotted #6b665e;text-underline-offset:3px}.player-page-body button.dnd-feature-name:not(.link-button):not(.primary),.dnd-spell button.dnd-feature-name{background:none;border:none;padding:0;min-height:0;color:inherit}.dnd-feature-name:disabled{cursor:default;text-decoration:none;opacity:1}.dnd-feature-text{white-space:pre-line;margin:2px 0 4px;line-height:1.45}.dnd-feature-edit{gap:4px;padding:6px 0;border-bottom:1px solid var(--border)}.dnd-feature-edit textarea{width:100%}.dnd-dl{margin:0;display:grid;gap:6px}.dnd-dl dt{font-weight:600}.dnd-dl dd{margin:0}.dnd-gear{margin:0;padding-left:18px;columns:2 180px}.dnd-tag{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid currentColor;border-radius:4px;font-size:11px;font-weight:700;text-decoration:none;opacity:.75}.dnd-spell-line,.dnd-spell-note{display:block;font-weight:400}.sound-pad-spotify{color:#1db954;font-size:10px;margin-left:4px}.spotify-bar{padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);gap:6px}.item-details{margin:6px 0;max-width:420px}.player-item-wrap{gap:2px}.token-picture-preview{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--border)}.sheet-builder{border:1px solid var(--border);border-radius:var(--radius);padding:10px}.sheet-fields{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.sheet-fields li{flex-wrap:wrap;gap:6px}.custom-sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-items:end}.custom-sheet-heading,.custom-sheet-wide{grid-column:1 / -1}.custom-sheet-heading{margin:8px 0 0;font-size:1rem}.custom-tracker{grid-column:span 2}.custom-tracker .row{gap:4px;flex-wrap:nowrap}.custom-roll{display:flex;justify-content:space-between;gap:6px}.travel-bar{flex-wrap:wrap;gap:6px}.card-spread{list-style:none;margin:0;padding:4px 0;display:flex;flex-wrap:wrap;gap:10px}.card-face-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;max-width:96px;text-align:center}.card-face{display:flex;align-items:center;justify-content:center;width:64px;height:90px;padding:4px;border-radius:7px;background:#fbf8f1;color:#1b1b1b;border:1px solid var(--border-strong);box-shadow:0 2px 6px #00000040;font-weight:700;overflow:hidden}.card-face.standard{font-size:1.35rem}.card-face.words{width:86px;height:112px;font-size:.8rem;line-height:1.15;overflow-wrap:anywhere}.card-face.red{color:#b3261e}.schedule-panel{border-top:1px solid var(--border);padding-top:8px}.schedule-tally,.schedule-options{list-style:none;margin:0;padding:0;display:grid;gap:6px}.schedule-tally li,.schedule-options li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:8px}.schedule-tally li.best{border-color:var(--accent)}.schedule-when{font-weight:600;min-width:150px}.schedule-who{display:flex;flex-wrap:wrap;gap:8px;flex:1}.schedule-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:8px 12px 0;padding:10px 12px;border-radius:12px;background:#1f1d24;color:#ece8e1;border:1px solid #e3934a}.schedule-card button{background:#2a2830;color:#ece8e1;border-color:#44404a}.schedule-card .link-button{background:none;border:none;color:#e3934a}.schedule-card .schedule-options li{border-color:#36333b}.schedule-card .schedule-options button.on{background:#4a3320;border-color:#e3934a}.schedule-card.open{flex-direction:column;align-items:stretch}.schedule-options button{min-width:44px}.calendar-now{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;width:100%;padding:8px 10px}.calendar-steps button{padding:4px 8px}.calendar-form{border-top:1px solid var(--border);padding-top:8px}.calendar-months,.calendar-due,.calendar-ahead{list-style:none;margin:0;padding:0;display:grid;gap:4px}.calendar-due li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:var(--accent-soft);border:1px solid var(--accent)}.calendar-ahead li{display:flex;gap:6px;align-items:baseline}.player-calendar{padding:8px 0}.journal-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.journal-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 8px;border-radius:8px;border:1px solid var(--border)}.journal-list li.quest:not(.done){border-color:var(--accent)}.journal-list li.done .journal-text{text-decoration:line-through;opacity:.7}.journal-text{flex:1;min-width:140px;white-space:pre-wrap}.journal-board button.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.journal-board.dark .journal-list li{border-color:#36333b}.journal-board.dark .journal-list li.quest:not(.done){border-color:#e3934a}.journal-board.dark button.on{border-color:#e3934a;box-shadow:0 0 0 1px #e3934a inset}.gm-journal summary{cursor:pointer;padding:4px 0}.npc-card{border:1px solid var(--border);border-radius:10px;padding:8px 10px}.npc-name{font-family:var(--font-display, serif);font-size:1.15rem}.npc-parts{margin:0;display:grid;gap:4px}.npc-parts>div{display:grid;grid-template-columns:70px 1fr;gap:8px}.npc-parts dt{color:var(--muted)}.npc-parts dd{margin:0}.npc-names{margin:0;padding-left:18px;columns:2}.npc-parts dd .link-button{margin-left:6px}.relation-web{width:100%;height:auto;max-height:70vh;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;touch-action:none;-webkit-user-select:none;user-select:none;--relation-bg: var(--panel)}.relation-node{cursor:grab}.relation-node:active{cursor:grabbing}.relation-node circle{fill:var(--panel);stroke:var(--border);stroke-width:2}.relation-node.focus circle{stroke:var(--accent);stroke-width:3}.relation-label{font-size:14px;fill:currentColor;paint-order:stroke;stroke:var(--panel-2);stroke-width:4px;stroke-linejoin:round}.relation-add{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.relation-add select,.relation-add input{width:auto;flex:1 1 140px;min-width:0}.relation-list{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:4px}.relation-list li{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.relation-dot{width:10px;height:10px;border-radius:50%;flex:none}.loot-coins{display:grid;gap:8px}.loot-coin{display:grid;gap:4px}.loot-coin .row input{min-width:0}.loot-amount{font-size:1.05rem}.loot-add{display:flex;flex-wrap:wrap;gap:6px}.loot-add input{width:auto;flex:1 1 120px;min-width:0}.loot-group{display:grid;gap:2px}.loot-items{margin:0;padding:0;list-style:none;display:grid;gap:4px}.loot-items li{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap;border:1px solid var(--border);border-radius:8px;padding:4px 8px}.loot-item-name{flex:1 1 140px}.loot-item-actions input{width:110px;padding:2px 6px}.loot-log ul{margin:4px 0 0;padding-left:18px}.loot-chip{border:1px solid #36333b;border-radius:999px;padding:2px 10px}.handout-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}.handout-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;padding:4px 8px}.handout-list li.on{border-color:var(--accent)}.handout-name{text-align:left;flex:1}.handout-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;align-items:start}.handout-preview{width:100%;height:auto;border-radius:8px;background:#1c1814}@media (max-width: 720px){.handout-editor{grid-template-columns:1fr}}
