:root{--bg: #14110f;--panel: #211c19;--panel-2: #2c2420;--ink: #ece3d8;--ink-dim: #a99e92;--line: #3a302a;--ember: #e8682c;--ember-dim: #7a3a1c;--hp: #5fb16b;--hp-ghost: #2f5e38;--hp-low: #cf4f3e;--win: #5fb16b;--loss: #cf4f3e;--accent: #d8a657}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 ui-monospace,SF Mono,Menlo,Consolas,monospace}.topbar{padding:16px 24px;border-bottom:1px solid var(--line);background:var(--panel)}.topbar h1{margin:0;font-size:20px;color:var(--ember)}.topbar .sub{margin:4px 0 0;color:var(--ink-dim);font-size:13px}.layout{display:grid;grid-template-columns:320px 1fr;gap:0;height:calc(100vh - 70px)}.controls{padding:16px 20px;border-right:1px solid var(--line);overflow-y:auto;background:var(--panel)}.controls h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:18px 0 8px}.controls h2:first-child{margin-top:0}.hint,.placeholder{color:var(--ink-dim);font-size:12.5px}.roster{display:flex;flex-direction:column;gap:12px}.faction-group .faction-name{font-size:11px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.hero-pick{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;margin-bottom:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.hero-pick:hover{border-color:var(--ember-dim)}.hero-pick.on{border-color:var(--ember);background:var(--panel-2)}.hero-pick .hname{font-weight:600}.hero-pick .hmeta{color:var(--ink-dim);font-size:11.5px;margin-left:auto}.settings{display:flex;flex-direction:column;gap:8px}.settings label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-dim)}.settings input[type=number],.settings select{margin-left:auto;width:90px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:4px 6px;font:inherit}.settings label.check{color:var(--ink)}.settings label.check input{margin-left:0}.play{margin-top:16px;width:100%;padding:10px;cursor:pointer;background:var(--ember);color:#1a120c;border:none;border-radius:6px;font:600 15px/1 inherit}.play:hover{background:#f37b3e}.error{color:var(--loss);font-size:13px;margin-top:10px}.results{padding:18px 24px;overflow-y:auto}.run-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;flex-wrap:wrap}.run-head h2{margin:0;font-size:17px}.run-head .meta{color:var(--ink-dim);font-size:13px}.badge{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em}.badge.win{background:var(--hp-ghost);color:#cdeccf}.badge.loss{background:#4a221c;color:#f3c4bc}.node{border:1px solid var(--line);border-radius:8px;margin-bottom:14px;background:var(--panel);overflow:hidden}.node-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel-2);border-bottom:1px solid var(--line)}.node-kind{font-size:11px;text-transform:uppercase;letter-spacing:.07em;padding:2px 8px;border-radius:4px;background:var(--ember-dim);color:#f6d8c6}.node-kind.boss{background:#6a2233;color:#f6c6d2}.node-kind.boon{background:#4a3a14;color:var(--accent)}.node-kind.merchant{background:#2a3340;color:#b9cbe0}.node-title{font-weight:600}.node-sub{color:var(--ink-dim);font-size:12.5px}.node-result{margin-left:auto;font-weight:700;font-size:13px}.node-result.win{color:var(--win)}.node-result.loss{color:var(--loss)}.node-body{padding:12px 14px}.hero-row{display:grid;grid-template-columns:110px 1fr 130px;align-items:center;gap:10px;margin:6px 0}.hero-row .hl{font-size:13px}.hero-row .hl small{color:var(--ink-dim)}.hpbar{position:relative;height:16px;border-radius:4px;background:#1b1714;border:1px solid var(--line);overflow:hidden}.hpbar .ghost{position:absolute;inset:0 auto 0 0;background:var(--hp-ghost)}.hpbar .fill{position:absolute;inset:0 auto 0 0;background:var(--hp)}.hpbar .fill.low{background:var(--hp-low)}.hero-row .hn{font-size:12.5px;color:var(--ink-dim);text-align:right;white-space:nowrap}.hero-row .hn .drop{color:var(--hp-low)}.hero-row.down{opacity:.5}.hero-row.down .hpbar{background:repeating-linear-gradient(45deg,#1b1714,#1b1714 5px,#241c18 5px,#241c18 10px)}.hero-row.fell .hl{color:var(--hp-low)}.team-line{color:var(--ink-dim);font-size:12.5px;margin-top:8px}.boons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.boon{border:1px solid var(--line);border-radius:6px;padding:10px;background:var(--bg)}.boon.chosen{border-color:var(--accent);background:var(--panel-2)}.boon .bn{font-weight:600;display:flex;align-items:center;gap:6px}.boon .bn .pick{color:var(--accent)}.boon .bt{color:var(--ink-dim);font-size:12px;margin-top:4px}.boon .passed{color:var(--ink-dim);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.merchant-note{color:var(--ink-dim);font-size:13px}details.log{margin-top:12px}details.log summary{cursor:pointer;color:var(--accent);font-size:13px}details.log pre{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px;overflow-x:auto;font-size:12px;color:var(--ink-dim);white-space:pre-wrap}
