diff --git a/public/yxp_images b/public/yxp_images
index 5bbc06ae..efebff3e 160000
--- a/public/yxp_images
+++ b/public/yxp_images
@@ -1 +1 @@
-Subproject commit 5bbc06ae6f97bb8624a58e4a5df51f3adcef85f6
+Subproject commit efebff3e7ac72e0fc8da77cf37a498d0a7b36b4d
diff --git a/src/App.css b/src/App.css
index 35f077ac..ecd203e5 100644
--- a/src/App.css
+++ b/src/App.css
@@ -13,6 +13,12 @@
cursor: pointer;
}
+.card img {
+ width: 100%;
+ aspect-ratio: 425 / 685;
+ object-fit: contain;
+}
+
.cardname,
.cardlevel {
margin-inline-end: 0 !important;
@@ -64,3 +70,9 @@
.ant-input-number {
width: 60px;
}
+
+.ant-tree-select-dropdown .ant-select-tree-node-content-wrapper,
+.ant-tree-select-dropdown .ant-select-tree-node-content-wrapper * {
+ color: rgba(255, 255, 255, 0.85) !important;
+ -webkit-text-fill-color: rgba(255, 255, 255, 0.85) !important;
+}
diff --git a/src/Simulator.jsx b/src/Simulator.jsx
index 84ae367d..e760a777 100644
--- a/src/Simulator.jsx
+++ b/src/Simulator.jsx
@@ -61,10 +61,23 @@ function buildTree(items, l) {
const tree = [];
for (const item of items) {
+ const sid = String(item.id);
+
+ // Dream cards: D-prefix → add under "Dream" category
+ if (sid.startsWith('D')) {
+ let dreamNode = tree.find(n => n.idPart === 'dream');
+ if (!dreamNode) {
+ dreamNode = { idPart: 'dream', value: 'dream', title: l('Fate Branches'), disabled: true, children: [] };
+ tree.push(dreamNode);
+ }
+ dreamNode.children.push({ value: item.id, title: l(item.name) });
+ continue;
+ }
+
const ID_RE = /^(\d)(\d)(\d)(\d{2})(\d)$/;
// 1. Extract levels
- const s = String(item.id).padStart(6, "0");
+ const s = sid.padStart(6, "0");
const m = s.match(ID_RE);
if (!m) continue;
const [, lv1, lv2, lv3] = m;
@@ -432,6 +445,7 @@ const Simulator = ({ l, form, setResult, setIsModalOpen, messageApi }) => {