*{box-sizing:border-box}html{color-scheme:dark;background:#101820}body{margin:0;color:#e9e7df;font:16px/1.85 system-ui,sans-serif}a{color:#eccb8b;text-underline-offset:4px}a:hover{color:#fff}header,main,footer{max-width:1000px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #35404a;gap:20px}header a{text-decoration:none}nav{display:flex;gap:22px;flex-wrap:wrap}header strong{letter-spacing:.13em}h1{font-size:clamp(32px,6vw,62px);line-height:1.2;margin:20px 0}h2{font-size:24px;margin:38px 0 14px;color:#eccb8b}p{margin:12px 0}main{padding-top:44px;padding-bottom:60px;min-height:65vh}.hero{display:grid;grid-template-columns:1fr 128px;align-items:center;gap:28px;padding:10px 0 36px}.hero img{width:128px;height:128px;border-radius:16px;border:1px solid #b79352}.eyebrow{letter-spacing:.2em;color:#c5b69a;font-size:12px}.lead{font-size:20px;color:#cbd0d3}.status{border:1px solid #685b40;border-left:4px solid #dbb56c;background:#201f1c;padding:18px 22px;margin:18px 0 30px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{border:1px solid #35404a;background:#17222c;padding:22px;border-radius:10px}.card h2{margin:0 0 8px}.card p{color:#cbd0d3}.number{font-size:34px;color:#fff;font-weight:700}.muted,footer{color:#a6b0b9;font-size:14px}footer{border-top:1px solid #35404a;padding-top:28px;padding-bottom:32px}ul,ol{padding-left:1.4em}li{margin:8px 0}.steps{padding:4px 0 4px 24px}.steps strong{color:#eccb8b}.about{display:grid;grid-template-columns:minmax(160px,220px) 1fr;gap:6px 18px;margin:14px 0}.about dt{color:#eccb8b;font-weight:700}.about dd{margin:0}.body{max-width:820px}.back{display:inline-block;margin-top:28px}@media(max-width:640px){header{align-items:flex-start;flex-direction:column}.cards{grid-template-columns:1fr}.about{grid-template-columns:1fr}.hero{grid-template-columns:1fr}.hero img{grid-row:1;width:96px;height:96px}header,main,footer{padding-left:20px;padding-right:20px}.lead{font-size:18px}}.source-index-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.source-index-grid ul{columns:2;column-gap:20px}.source-index-grid li{break-inside:avoid}.source-table-scroll{overflow-x:auto;margin:20px 0}.source-table{width:100%;border-collapse:collapse;min-width:620px;font-size:14px}.source-table th,.source-table td{padding:10px 12px;border:1px solid #35404a;vertical-align:top;text-align:left}.source-table thead th{background:#26343f;color:#eccb8b}.source-table tbody th{background:#17222c;min-width:150px}.source-table code{overflow-wrap:anywhere;font-size:12px}.source-changed{background:#263125}.source-missing{color:#cbd0d3}.source-provenance,.source-card,.source-branch{border:1px solid #35404a;background:#17222c;border-radius:8px;padding:14px 18px;margin:16px 0}.source-provenance summary,.source-card summary{cursor:pointer;color:#eccb8b;font-weight:700}.source-card summary{font-size:18px}.source-branches{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.source-branch{margin:0}.source-branch h3{margin:0 0 8px;color:#eccb8b;font-size:16px}.source-branch li{margin:6px 0}.source-table td:nth-child(2),.source-table td:nth-child(3){min-width:160px}@media(max-width:760px){.source-index-grid{grid-template-columns:1fr}.source-index-grid ul{columns:1}.source-table{font-size:13px}}.source-state-dev,.source-state-live{display:inline-block;border-radius:999px;padding:3px 12px;font-size:13px}.source-state-dev{color:#ffe4af;background:#594026;border:1px solid #dbb56c}.source-state-live{color:#d7e8f4;background:#233746;border:1px solid #52738a}.source-dev{margin-top:44px;border-top:1px solid #35404a}.source-edge-meta{display:inline-block;margin-left:7px;font-size:12px}.source-edge-meta summary{cursor:pointer;color:#a6b0b9}.source-edge-meta code{overflow-wrap:anywhere}.source-card:target{border-color:#eccb8b;scroll-margin-top:28px}.source-icon{display:inline-block;object-fit:contain;width:48px;height:48px;vertical-align:middle;margin-right:9px}.source-tree-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:5px 20px}.source-tree-list li{break-inside:avoid}.source-tree-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.source-tree-pair h2{font-size:20px}.source-tree-viewport{overflow:auto;background:#14202a;border:1px solid #35404a;border-radius:8px}.source-tree-viewport svg{display:block;max-width:none}.source-svg-lines{stroke:#9fb0bd;stroke-width:2;opacity:.7}.source-svg-nodes text{fill:#f4efe4;font:12px system-ui,sans-serif}.source-svg-nodes a:hover rect{stroke:#fff}.source-svg-live{fill:#294457;stroke:#c5a86d;stroke-width:2}.source-svg-dev{fill:#453627;stroke:#e0b368;stroke-width:2;stroke-dasharray:5 4}.source-svg-axis{fill:#a6b0b9;font:11px system-ui,sans-serif}@media(max-width:900px){.source-tree-pair{grid-template-columns:1fr}}.source-tree-pair>section{min-width:0}.source-tree-overview{background:#14202a;border:1px solid #35404a;border-radius:8px;padding:8px}.source-tree-overview svg{display:block;width:100%;height:auto}.source-tree-detail{margin:12px 0;border:1px solid #35404a;border-radius:8px;padding:8px}.source-tree-detail summary{cursor:pointer;color:#eccb8b}.source-tree-detail .source-tree-viewport{margin-top:10px}.source-languages{display:flex;gap:12px;margin:0 0 24px;font-size:13px}.source-languages a{border:1px solid #53616a;border-radius:6px;padding:3px 9px}.source-languages a[aria-current="true"]{background:#354b5e;color:#fff;font-weight:700}.source-table-scroll,.source-tree-viewport{max-width:100%}[hidden]{display:none!important}.site-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.site-languages{display:flex;gap:6px}.site-languages a{padding:2px 7px;border:1px solid currentColor;border-radius:5px}.site-languages a[aria-current="page"]{font-weight:700;text-decoration:none}.theme-toggle{font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:5px;padding:3px 9px;cursor:pointer}.site-resources{display:flex;gap:8px 18px;flex-wrap:wrap}.site-resources a{overflow-wrap:anywhere}@media(max-width:760px){header{flex-wrap:wrap}.site-controls{width:100%}}html[data-theme="light"]{color-scheme:light;background:#f7f8f6}html[data-theme="light"] body{color:#17242e}html[data-theme="light"] a{color:#624000}html[data-theme="light"] a:hover{color:#143d60}html[data-theme="light"] h2,html[data-theme="light"] .card h2,html[data-theme="light"] .source-branch h3,html[data-theme="light"] .about dt,html[data-theme="light"] .steps strong{color:#684400}html[data-theme="light"] .eyebrow,html[data-theme="light"] .lead,html[data-theme="light"] .card p,html[data-theme="light"] .source-missing,html[data-theme="light"] .muted,html[data-theme="light"] footer{color:#425363}html[data-theme="light"] header,html[data-theme="light"] footer,html[data-theme="light"] .source-dev{border-color:#aab9c1}html[data-theme="light"] .status{background:#fff8e9;border-color:#a48140}html[data-theme="light"] .card,html[data-theme="light"] .source-provenance,html[data-theme="light"] .source-card,html[data-theme="light"] .source-branch{background:#fff;border-color:#aab9c1}html[data-theme="light"] .number{color:#17242e}html[data-theme="light"] .source-table th,html[data-theme="light"] .source-table td{border-color:#aab9c1}html[data-theme="light"] .source-table thead th{background:#e4ebef;color:#604100}html[data-theme="light"] .source-table tbody th{background:#f3f5f5}html[data-theme="light"] .source-changed{background:#e5f2dd}html[data-theme="light"] .source-provenance summary,html[data-theme="light"] .source-card summary,html[data-theme="light"] .source-tree-detail summary{color:#684400}html[data-theme="light"] .source-state-dev{color:#543400;background:#fff0cf;border-color:#99713b}html[data-theme="light"] .source-state-live{color:#163a53;background:#e3eff6;border-color:#668294}html[data-theme="light"] .source-languages a[aria-current="true"]{background:#dde8f0;color:#163a53}html[data-theme="light"] .source-tree-viewport,html[data-theme="light"] .source-tree-overview{background:#eff4f7;border-color:#9cabb7}html[data-theme="light"] .source-tree-detail{border-color:#9cabb7}html[data-theme="light"] .source-svg-lines{stroke:#405c72;opacity:1}html[data-theme="light"] .source-svg-nodes text{fill:#fff}html[data-theme="light"] .source-svg-axis{fill:#314959}html[data-theme="light"] .source-svg-live{fill:#315974;stroke:#5d4300}html[data-theme="light"] .source-svg-dev{fill:#61421f;stroke:#765100}html[data-theme="light"] .source-edge-meta summary{color:#425363}@media(prefers-color-scheme:light){html:not([data-theme]){color-scheme:light;background:#f7f8f6}html:not([data-theme]) body{color:#17242e}html:not([data-theme]) a{color:#624000}html:not([data-theme]) .card,html:not([data-theme]) .source-card{background:#fff;border-color:#aab9c1}}@media(prefers-color-scheme:light){html:not([data-theme]){color-scheme:light;background:#f7f8f6}html:not([data-theme]) body{color:#17242e}html:not([data-theme]) a{color:#624000}html:not([data-theme]) a:hover{color:#143d60}html:not([data-theme]) h2,html:not([data-theme]) .card h2,html:not([data-theme]) .source-branch h3,html:not([data-theme]) .about dt,html:not([data-theme]) .steps strong{color:#684400}html:not([data-theme]) .eyebrow,html:not([data-theme]) .lead,html:not([data-theme]) .card p,html:not([data-theme]) .source-missing,html:not([data-theme]) .muted,html:not([data-theme]) footer{color:#425363}html:not([data-theme]) header,html:not([data-theme]) footer,html:not([data-theme]) .source-dev{border-color:#aab9c1}html:not([data-theme]) .status{background:#fff8e9;border-color:#a48140}html:not([data-theme]) .card,html:not([data-theme]) .source-provenance,html:not([data-theme]) .source-card,html:not([data-theme]) .source-branch{background:#fff;border-color:#aab9c1}html:not([data-theme]) .number{color:#17242e}html:not([data-theme]) .source-table th,html:not([data-theme]) .source-table td{border-color:#aab9c1}html:not([data-theme]) .source-table thead th{background:#e4ebef;color:#604100}html:not([data-theme]) .source-table tbody th{background:#f3f5f5}html:not([data-theme]) .source-changed{background:#e5f2dd}html:not([data-theme]) .source-provenance summary,html:not([data-theme]) .source-card summary,html:not([data-theme]) .source-tree-detail summary{color:#684400}html:not([data-theme]) .source-state-dev{color:#543400;background:#fff0cf;border-color:#99713b}html:not([data-theme]) .source-state-live{color:#163a53;background:#e3eff6;border-color:#668294}html:not([data-theme]) .source-languages a[aria-current="true"]{background:#dde8f0;color:#163a53}html:not([data-theme]) .source-tree-viewport,html:not([data-theme]) .source-tree-overview{background:#eff4f7;border-color:#9cabb7}html:not([data-theme]) .source-tree-detail{border-color:#9cabb7}html:not([data-theme]) .source-svg-lines{stroke:#405c72;opacity:1}html:not([data-theme]) .source-svg-nodes text{fill:#fff}html:not([data-theme]) .source-svg-axis{fill:#314959}html:not([data-theme]) .source-svg-live{fill:#315974;stroke:#5d4300}html:not([data-theme]) .source-svg-dev{fill:#61421f;stroke:#765100}html:not([data-theme]) .source-edge-meta summary{color:#425363}}.source-table:has(>thead>tr>th:nth-child(2):last-child){min-width:0;table-layout:fixed}.source-table:has(>thead>tr>th:nth-child(2):last-child) th,.source-table:has(>thead>tr>th:nth-child(2):last-child) td{min-width:0;overflow-wrap:anywhere}.source-table:has(>thead>tr>th:nth-child(2):last-child) th:first-child{width:55%}.sim-app{--sim-bg:#18222c;--sim-surface:#202f3c;--sim-line:#586d7d;--sim-accent:#ebc57d;--sim-text:#f0f2f4;--sim-muted:#b9c5ce;color:var(--sim-text);margin:24px 0 42px}.sim-app h2{margin-top:12px}.sim-app button,.sim-app select{font:inherit;color:inherit;background:var(--sim-surface);border:1px solid var(--sim-line);border-radius:6px;padding:7px 10px;cursor:pointer}.sim-app button:hover:enabled{border-color:var(--sim-accent);background:var(--sim-bg)}.sim-app button:focus-visible,.sim-app select:focus-visible,.sim-viewport:focus-visible{outline:3px solid var(--sim-accent);outline-offset:3px}.sim-app button:disabled{opacity:.4;cursor:not-allowed}.sim-controls,.sim-tabs,.sim-actions{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.sim-field{display:flex;flex-direction:column;gap:4px;font-size:14px;max-width:100%}.sim-field select{max-width:100%}.sim-help{color:var(--sim-muted);font-size:13px;line-height:1.65}.sim-tabs{margin:20px 0 8px}.sim-tabs button[aria-pressed=true]{background:var(--sim-accent);color:#17222b;font-weight:700;border-color:var(--sim-accent)}.sim-message{min-height:22px;color:var(--sim-accent);font-size:14px}.sim-compare{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.sim-panel{min-width:0;border:1px solid var(--sim-line);border-radius:10px;overflow:hidden;background:var(--sim-bg)}.sim-panel-head{padding:14px 16px 0}.sim-panel h3{margin:0;font-size:20px}.sim-counter{margin:6px 0;color:var(--sim-accent);font-variant-numeric:tabular-nums}.sim-actions{padding:6px 16px 14px;font-size:12px}.sim-viewport{max-width:100%;max-height:730px;overflow:auto;border-top:1px solid var(--sim-line)}.sim-canvas{position:relative;margin:0 auto}.sim-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.sim-lines path{fill:none;stroke:var(--sim-line);stroke-width:1.5;stroke-dasharray:4 3}.sim-lines .sim-line-open{stroke:var(--sim-accent);stroke-dasharray:none}.sim-root{position:absolute;top:12px;width:310px;text-align:center;padding:6px;border:1px solid var(--sim-accent);border-radius:8px;background:var(--sim-surface)}.sim-root small{display:block;color:var(--sim-muted);font-size:11px}.sim-node{position:absolute;width:132px;height:112px;padding:5px 7px;background:var(--sim-surface);border:1px solid var(--sim-line);border-radius:8px;display:flex;flex-direction:column;box-sizing:border-box;font-size:11px;line-height:1.3}.sim-node.is-selected{border:2px solid var(--sim-accent);padding:4px 6px;box-shadow:0 0 0 2px #d8b76c18}.sim-node.is-locked{opacity:.7}.sim-tier{font-size:10px;color:var(--sim-muted);white-space:nowrap}.sim-node-label{font-size:11px;line-height:1.25;height:28px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:3px;overflow-wrap:anywhere}.sim-node-value{white-space:nowrap;font-size:10px;color:var(--sim-accent);margin:3px 0 4px}.sim-stepper{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.sim-stepper button{padding:0;width:30px;height:28px;font-size:17px;line-height:1}.sim-results{margin:24px 0}.sim-table-scroll{overflow-x:auto;max-width:100%}.sim-stats{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;min-width:440px}.sim-stats th,.sim-stats td{padding:13px 10px;border:1px solid var(--sim-line);vertical-align:top;text-align:left;overflow-wrap:anywhere}.sim-stats th:first-child{width:40%}.sim-stats thead{background:var(--sim-surface)}.sim-stats small{display:block;font-weight:400;font-size:11px;color:var(--sim-muted);margin-top:4px}.sim-current{display:block;font-size:16px;margin:8px 0;font-variant-numeric:tabular-nums}.sim-range{display:flex;gap:5px;flex-wrap:wrap}.sim-range button{font-size:11px;padding:4px 6px;text-align:left}.development-search{display:block;max-width:100%;width:440px;font:inherit;padding:10px;background:transparent;color:inherit;border:1px solid #738491;border-radius:6px}.development-stats{display:flex;flex-wrap:wrap;gap:12px}.development-stats a{border:1px solid #738491;border-radius:8px;padding:12px 20px}.development-list small{display:block}.development-state{font-size:12px;border:1px solid #a7864e;border-radius:4px;padding:2px 6px}.development-list td{max-width:220px;overflow-wrap:anywhere}html[data-theme=light] .sim-app{--sim-bg:#f0f4f7;--sim-surface:#fff;--sim-line:#9aafbe;--sim-accent:#705016;--sim-text:#172938;--sim-muted:#4b6071}html[data-theme=light] .sim-tabs button[aria-pressed=true]{color:white}@media(prefers-color-scheme:light){html:not([data-theme]) .sim-app{--sim-bg:#f0f4f7;--sim-surface:#fff;--sim-line:#9aafbe;--sim-accent:#705016;--sim-text:#172938;--sim-muted:#4b6071}html:not([data-theme]) .sim-tabs button[aria-pressed=true]{color:white}}@media(max-width:900px){.sim-compare{grid-template-columns:minmax(0,1fr)}.sim-viewport{max-height:510px}.sim-controls{align-items:stretch}.sim-field{width:100%}}@media(min-width:1200px){body:has(#ability-simulator) main{max-width:1440px}}

.consumable-card code,.source-provenance code{overflow-wrap:anywhere}.consumable-detail{display:block;overflow-wrap:anywhere;color:var(--sim-muted,#a6b0b9)}#consumable-tier{font:inherit;color:inherit;background:transparent;padding:6px;margin:10px;border:1px solid currentColor;border-radius:6px}.consumable-card .source-table{min-width:520px}

/* Native layout: tiers progress horizontally, with the original row coordinates. */
.sim-game-tree{background:repeating-linear-gradient(90deg,transparent 0,transparent 123px,color-mix(in srgb,var(--sim-line) 18%,transparent) 123px,color-mix(in srgb,var(--sim-line) 18%,transparent) 124px)}
.sim-game-tree .sim-tier-axis{position:sticky;top:0;height:36px;z-index:4;background:var(--sim-bg);border-bottom:1px solid var(--sim-line)}
.sim-tier-axis span{position:absolute;text-align:center;font:600 20px/34px Georgia,serif;color:var(--sim-accent)}
.sim-game-tree .sim-node{width:88px;height:84px;padding:3px;border-radius:2px;background:var(--sim-surface)}
.sim-game-tree .sim-node-face{height:49px;display:flex;align-items:center;justify-content:center;gap:3px}
.sim-node-face img{object-fit:contain;flex:none;border:1px solid var(--sim-line)}
.sim-game-tree .sim-node-label{font-size:10px;line-height:1.15;overflow-wrap:anywhere}
.sim-game-tree .sim-node-value{font-size:10px;max-width:35px;overflow-wrap:anywhere}
.sim-game-tree .sim-stepper{gap:2px;justify-content:space-between;font-size:11px}
.sim-game-tree .sim-stepper button{padding:0;width:21px;height:23px;min-height:23px;border-radius:1px;font-size:16px}
.sim-game-tree .sim-root{position:absolute;width:88px;min-height:84px;transform:none;padding:4px;border-radius:2px;text-align:center;line-height:1.1;display:flex;align-items:center;flex-direction:column;background:var(--sim-surface)}
.sim-game-tree .sim-root strong{font-size:11px;overflow-wrap:anywhere}.sim-game-tree .sim-root small{font-size:10px}
.sim-game-tree .sim-root.is-active{outline:2px solid var(--sim-accent)}
.sim-game-tree .is-locked img{filter:grayscale(1);opacity:.5}.sim-game-tree .is-selected img{border-color:var(--sim-accent)}
.sim-game-tree .sim-node:focus,.sim-game-tree .sim-node:hover{outline:2px solid var(--sim-accent)}
.sim-viewport{max-height:620px}.sim-lines path{stroke-width:1.5}.skill-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}.skill-card{min-width:0;margin:0}.skill-card h3{display:flex;align-items:center;font-size:19px}.skill-target{display:block;font-weight:400;font-size:12px}.skill-card .source-table th:first-child{width:65%!important}

.source-table:has(>thead>tr>th:nth-child(3):last-child){min-width:0;table-layout:fixed}.source-table:has(>thead>tr>th:nth-child(3):last-child) th,.source-table:has(>thead>tr>th:nth-child(3):last-child) td{min-width:0;overflow-wrap:anywhere}.source-table:has(>thead>tr>th:nth-child(3):last-child) th:first-child{width:40%}
