:root{--felt: #1f2530;--felt-2: #272e3c;--felt-3: #313a4b;--paper: #efe7d4;--paper-2: #e6dcc4;--ink: #2b2519;--ink-soft: #6b6250;--gold: #c9a227;--gold-dim: #9a7f22;--red: #a53f2b;--text: #d7dae1;--text-dim: #98a0af;--font-display: "Alegreya", Georgia, serif;--font-body: "Alegreya Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius: 6px}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--felt);background-image:radial-gradient(ellipse at 50% -20%,#2c3444 0%,var(--felt) 60%);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.45}#app{min-height:100%}h1,h2,h3{font-family:var(--font-display);font-weight:700;margin:0 0 .5em}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}.panel{background:var(--felt-2);border:1px solid var(--felt-3);border-radius:var(--radius);padding:16px}.paper{background:var(--paper);background-image:linear-gradient(160deg,rgba(255,255,255,.5) 0%,transparent 30%),linear-gradient(0deg,var(--paper-2) 0%,var(--paper) 12%);color:var(--ink);border-radius:2px;box-shadow:0 1px 2px #00000073,0 8px 24px #00000059;padding:20px 22px}.paper h1,.paper h2,.paper h3{color:var(--ink)}.paper a{color:var(--gold-dim)}.rule{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dim);margin:18px 0 8px}.rule:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--gold-dim),transparent)}.rule:first-child{margin-top:0}.locked{color:#b3ab99!important;pointer-events:none;filter:grayscale(1)}label.field{display:block;margin-bottom:12px;font-weight:500}label.field>span{display:block;font-size:.82rem;color:var(--text-dim);margin-bottom:4px;letter-spacing:.03em}.paper label.field>span{color:var(--ink-soft)}input,select,textarea{width:100%;font:inherit;color:var(--text);background:#1a1f29;border:1px solid var(--felt-3);border-radius:var(--radius);padding:8px 10px}.paper input,.paper select,.paper textarea{color:var(--ink);background:#ffffff8c;border-color:#cabfa4}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:1px}input[type=number]{width:90px}input[type=checkbox]{width:auto}button{font:inherit;font-weight:700;color:#141414;background:var(--gold);border:none;border-radius:var(--radius);padding:8px 16px;cursor:pointer}button:hover{background:#d9b23a}button:disabled{opacity:.45;cursor:default}button.ghost{background:transparent;color:var(--text);border:1px solid var(--felt-3)}.paper button.ghost{color:var(--ink);border-color:#cabfa4}button.ghost:hover{border-color:var(--gold);color:var(--gold)}button.danger{background:var(--red);color:#fff}button.small{padding:3px 9px;font-size:.82rem;font-weight:500}button.info{width:20px;height:20px;padding:0;border-radius:50%;font-size:.72rem;font-weight:800;font-family:var(--font-display);font-style:italic;background:transparent;color:var(--gold-dim);border:1px solid var(--gold-dim);vertical-align:middle;line-height:1}button.info:hover{background:var(--gold);border-color:var(--gold);color:#141414}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.muted{color:var(--text-dim);font-size:.88rem}.paper .muted{color:var(--ink-soft)}.error{color:#e08573;font-size:.9rem;margin:8px 0}.badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:10px;background:var(--gold);color:#141414}.badge.game{background:#3f6b4f;color:#eaf3ec}.mono{font-family:var(--font-mono);font-size:.85rem}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.wrap.svelte-1o03xj0{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.card.svelte-1o03xj0{width:min(420px,100%)}.tabs.svelte-1o03xj0{margin-bottom:16px}.backdrop.svelte-1bxxaoh{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a0d12a6;display:flex;align-items:center;justify-content:center;padding:20px}.dialog.svelte-1bxxaoh{width:min(560px,100%);max-height:85vh;overflow-y:auto}.head.svelte-1bxxaoh{margin-bottom:8px}.head.svelte-16trg36{margin-bottom:16px}.card.svelte-16trg36 h2:where(.svelte-16trg36){margin-bottom:2px}.stats.svelte-16trg36{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.stat.svelte-16trg36{display:flex;flex-direction:column;align-items:center;border:1px solid #cabfa4;border-radius:4px;padding:3px 7px}.stat.svelte-16trg36 .label:where(.svelte-16trg36){font-size:.62rem;text-transform:uppercase;color:var(--ink-soft)}.stat.svelte-16trg36 .value:where(.svelte-16trg36){font-weight:600}.stat.svelte-16trg36 .mod:where(.svelte-16trg36){font-size:.68rem;color:var(--gold-dim)}.actions.svelte-16trg36{margin-top:10px}table.svelte-1wj8byk{width:100%;border-collapse:collapse}td.svelte-1wj8byk{padding:3px 8px 3px 0;vertical-align:top;border-bottom:1px solid rgba(0,0,0,.08)}td.key.svelte-1wj8byk{color:var(--ink-soft);white-space:nowrap;width:1%;padding-right:16px}.desc.svelte-1wj8byk{white-space:pre-wrap;margin:4px 0}.source.svelte-1wj8byk{margin-top:16px;text-align:right}.head.svelte-17o37jn{margin-bottom:12px}.plan.svelte-17o37jn{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:.78rem;margin-bottom:16px;padding:8px 12px}.step.svelte-17o37jn{color:var(--text-dim)}.step.ok.svelte-17o37jn{color:#8fbf9a}.step.run.svelte-17o37jn{color:var(--gold)}.step.fail.svelte-17o37jn{color:#e08573}.layout.svelte-17o37jn{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:20px;align-items:start}@media(max-width:900px){.layout.svelte-17o37jn{grid-template-columns:1fr}}.form.svelte-17o37jn{display:flex;flex-direction:column;gap:16px}.pair.svelte-17o37jn{display:flex;gap:14px;flex-wrap:wrap}.pair.svelte-17o37jn .field:where(.svelte-17o37jn){flex:1;min-width:160px}.budget.svelte-17o37jn{display:flex;gap:8px 22px;flex-wrap:wrap;margin-bottom:10px;font-size:.85rem}.overspent.svelte-17o37jn{color:#e08573;font-weight:700}.asi-row.svelte-17o37jn{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.asi-row.svelte-17o37jn .asi:where(.svelte-17o37jn){gap:4px}table.abilities.svelte-17o37jn{border-collapse:collapse;width:100%}table.abilities.svelte-17o37jn th:where(.svelte-17o37jn){text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:500;padding:2px 8px}table.abilities.svelte-17o37jn td:where(.svelte-17o37jn){padding:3px 8px;border-top:1px solid var(--felt-3);white-space:nowrap}.ab-name.svelte-17o37jn{font-weight:700}.val.svelte-17o37jn{display:inline-block;min-width:26px;text-align:center}.total-cell.svelte-17o37jn{font-weight:700}.mod-cell.svelte-17o37jn{color:var(--gold);font-weight:700}.feat-group.svelte-17o37jn{font-family:var(--font-display);font-weight:700;font-size:.85rem;letter-spacing:.05em;margin:10px 0 4px;color:var(--text-dim)}.checks.svelte-17o37jn{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 14px}.checks.tall.svelte-17o37jn{max-height:320px;overflow-y:auto}.checks.svelte-17o37jn .dimmed:where(.svelte-17o37jn){opacity:.45}.bonus.svelte-17o37jn{color:var(--gold);margin-left:4px}.item-row.svelte-17o37jn{display:grid;grid-template-columns:2fr 70px 2fr auto auto;gap:8px;align-items:center;margin-bottom:6px}.summary.svelte-17o37jn{position:sticky;top:16px}.sum-stats.svelte-17o37jn{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.sum-stats.svelte-17o37jn .stat:where(.svelte-17o37jn){display:flex;flex-direction:column;align-items:center;border:1px solid #cabfa4;border-radius:4px;padding:3px 8px}.sum-stats.svelte-17o37jn .stat:where(.svelte-17o37jn) span:where(.svelte-17o37jn){font-size:.62rem;text-transform:uppercase;color:var(--ink-soft)}.sum-stats.svelte-17o37jn .stat:where(.svelte-17o37jn) i:where(.svelte-17o37jn){font-style:normal;font-size:.72rem;color:var(--gold-dim)}.entry.svelte-17o37jn{padding:2px 0}.why.svelte-17o37jn{font-size:.72rem;color:inherit;border:1px solid currentColor;border-radius:8px;padding:0 6px;margin-left:6px}.notes.svelte-17o37jn{white-space:pre-wrap}.cols.svelte-2olv2n{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.game-card.svelte-2olv2n{display:block;color:var(--text)}.game-card.svelte-2olv2n:hover{border-color:var(--gold);text-decoration:none}table.svelte-lgf0jk{border-collapse:collapse;width:100%}td.svelte-lgf0jk{padding:2px 8px 2px 0;vertical-align:top}td.key.svelte-lgf0jk{color:var(--ink-soft);white-space:nowrap;width:1%;padding-right:14px}ul.svelte-lgf0jk{margin:0;padding-left:18px}.msg.svelte-14p2p5d{padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04)}.meta.svelte-14p2p5d{color:var(--text-dim);font-size:.75rem;margin-right:8px}.author.svelte-14p2p5d{font-weight:700;color:var(--gold);margin-right:6px}.total.svelte-14p2p5d{color:var(--gold);font-size:1.05em}.system.svelte-14p2p5d{color:var(--text-dim);font-style:italic}.log-events.svelte-14p2p5d{display:inline-block;color:#a9c3b1;font-size:.82rem}.sheet.svelte-14p2p5d{margin-top:6px;padding:10px 14px}.sheet.svelte-14p2p5d summary:where(.svelte-14p2p5d){cursor:pointer;font-weight:700}.head.svelte-8fw14r{margin-bottom:12px}.creds.svelte-8fw14r{margin-bottom:16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}code.svelte-8fw14r{background:#1a1f29;padding:2px 8px;border-radius:4px}.layout.svelte-8fw14r{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}@media(max-width:900px){.layout.svelte-8fw14r{grid-template-columns:1fr}}.chat.svelte-8fw14r{display:flex;flex-direction:column}.feed.svelte-8fw14r{height:55vh;overflow-y:auto;padding-right:6px}.send.svelte-8fw14r{margin-top:10px}.dice.svelte-8fw14r{margin-top:8px;padding-top:8px;border-top:1px solid var(--felt-3)}.side.svelte-8fw14r{display:flex;flex-direction:column;gap:16px}.member.svelte-8fw14r{padding:3px 0}.head.svelte-10ytbih{margin-bottom:4px}.layout.svelte-10ytbih{display:grid;grid-template-columns:minmax(300px,460px) minmax(0,1fr);gap:16px;align-items:start;margin-top:12px}@media(max-width:900px){.layout.svelte-10ytbih{grid-template-columns:1fr}}.objects.svelte-10ytbih{display:flex;flex-direction:column;gap:12px}.obj.svelte-10ytbih p:where(.svelte-10ytbih){margin:4px 0}.desc.svelte-10ytbih{font-size:.9rem}.review.svelte-10ytbih{color:#e0b273;font-size:.9rem}.status.svelte-10ytbih{font-size:.72rem;font-weight:700;letter-spacing:.05em;padding:2px 10px;border-radius:10px;text-transform:uppercase}.status.pending.svelte-10ytbih{background:#4a4632;color:#e6d9a8}.status.accepted.svelte-10ytbih{background:#3f6b4f;color:#eaf3ec}.status.rejected.svelte-10ytbih{background:#6b3f3f;color:#f3eaea}.section.svelte-1ozf5k3{margin-bottom:20px}table.wide.svelte-1ozf5k3{width:100%;border-collapse:collapse}table.wide.svelte-1ozf5k3 th:where(.svelte-1ozf5k3){text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:500;padding:4px 10px}table.wide.svelte-1ozf5k3 td:where(.svelte-1ozf5k3){padding:5px 10px;border-top:1px solid var(--felt-3)}td.num.svelte-1ozf5k3{text-align:center}.cache-grid.svelte-1ozf5k3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;font-size:.82rem}.cache-card.svelte-1ozf5k3{display:flex;flex-direction:column;gap:3px;border:1px solid var(--felt-3);border-radius:var(--radius);padding:10px 12px}.cache-card.svelte-1ozf5k3 b:where(.svelte-1ozf5k3){font-family:var(--font-body)}.warn.svelte-1ozf5k3{color:#e0b273}.log.svelte-1ozf5k3{max-height:420px;overflow-y:auto;font-size:.8rem}.log-line.svelte-1ozf5k3{display:flex;gap:10px;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.04);flex-wrap:wrap}.method.svelte-1ozf5k3{color:var(--gold);min-width:52px}.path.svelte-1ozf5k3{flex:1;min-width:200px;overflow-wrap:anywhere}.err.svelte-1ozf5k3{color:#e08573;font-weight:700}nav.svelte-1n46o8q{padding:10px 20px;border-bottom:1px solid var(--felt-3);background:#14192299;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.brand.svelte-1n46o8q{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--gold);margin-right:12px}nav.svelte-1n46o8q a:where(.svelte-1n46o8q){color:var(--text);padding:4px 8px;border-radius:4px}nav.svelte-1n46o8q a.active:where(.svelte-1n46o8q){color:var(--gold)}main.svelte-1n46o8q{max-width:1200px;margin:0 auto;padding:20px}
