.demo-nav{display:flex;gap:6px;font-size:11px}.demo-nav a{padding:8px 13px;border-radius:20px}.demo-nav [aria-current]{background:#193c2c;color:#fff}.family-toolbar{display:flex;align-items:center;gap:12px;padding:0 1.4% 18px;font-size:12px}.view-switch{margin-left:auto;display:flex;gap:5px}.view-switch button{border:1px solid #183c2b25;background:transparent;border-radius:22px;padding:8px 13px;font-size:11px;color:#183c2b}.view-switch [aria-pressed=true]{background:#e5eadb;border-color:#b1bea8}.family-scroll{overflow:auto;border-radius:26px}.family-canvas{position:relative;min-width:1152px;aspect-ratio:1440/1680;isolation:isolate;background:#f0edde;overflow:hidden;border-radius:26px}#family-graph{display:block;width:100%;height:100%}.family-zone{transition:opacity .25s}.family-zone.dim{opacity:.19}.zone-fill{stroke:#faf9f5;stroke-width:5}.child-fill{stroke:#fff8;stroke-width:1.5}.family-edge{fill:none;stroke:#253624;stroke-width:2;opacity:.5;pointer-events:none}.family-node{cursor:pointer;outline:none}.family-node:hover .node-label,.family-node:focus-visible .node-label{text-decoration:underline;text-underline-offset:5px}.node-label{font-size:22px;fill:var(--ink);font-weight:500;font-family:inherit;pointer-events:none}.child-label{font-size:17px}.node-count{font-size:11px;fill:var(--ink);opacity:.8;pointer-events:none}.hub{fill:#fff2;stroke:#fff9;stroke-width:1.5}.family-edge.matched{stroke:#fff;stroke-width:3.5;opacity:1}.family-canvas.hide-links .family-edge{display:none}.family-canvas.hide-cards #family-cards{display:none}.family-card{position:absolute;left:var(--x);top:var(--y);width:10%;height:182px;padding:12px 11px;background:var(--paper);border:1px solid #193c2b28;border-radius:5px;color:#193c2b;text-align:left;display:flex;flex-direction:column;box-shadow:0 8px 15px #402c282b;transform:rotate(var(--rotate));transition:opacity .2s,transform .2s;z-index:3}.family-card:hover,.family-card:focus-visible{transform:rotate(0) translateY(-5px);z-index:5}.family-card.dim{opacity:.13;pointer-events:none}.family-card.selected{outline:3px solid #193c2b;outline-offset:3px}.family-card .card-index{font-size:9px;margin-bottom:10px;letter-spacing:0}.family-card .card-index small{font-size:8px}.family-card h3{font-size:16px;line-height:1.25;margin:0 0 6px;font-weight:500;overflow-wrap:anywhere;letter-spacing:-.4px}.family-card .card-farm{font-size:9px;line-height:1.4;margin:0 0 7px}.family-card .card-swatches{margin-top:auto;gap:3px;margin-bottom:7px}.family-card .card-swatches i{width:11px;height:11px}.family-card .card-keywords{font-size:9px;line-height:1.5;margin:0}.family-card .card-bottom{font-size:8px;line-height:1.5;margin-top:6px;padding-top:5px}.family-card .pending{font-size:8px;margin-top:5px;color:#765829}.mood{position:absolute;left:22px;font-size:9px;letter-spacing:1.8px;z-index:2;color:#193c2b;pointer-events:none}.mood-top{top:17px}.mood-bottom{bottom:16px;color:#fff}.family-note{font-size:11px;color:#6b785f;line-height:1.7;margin:12px 3px}.family-legend{display:flex;justify-content:space-between;gap:30px;padding:48px 1.4%;align-items:center}.family-legend p{font-size:12px;line-height:1.9;color:#69745e}.family-legend>div:last-child{font-size:11px}.family-legend a{border-bottom:1px solid}.family-empty{position:absolute;top:38%;left:50%;transform:translateX(-50%);width:400px;text-align:center;padding:35px 25px;background:#faf9f5f2;border-radius:20px;z-index:6;box-shadow:0 10px 40px #183c2b20}.family-empty strong{font-size:21px;font-weight:500}.family-empty p{font-size:12px}.family-empty button{background:#183c2b;border:0;color:white;padding:10px 18px;border-radius:20px;font-size:12px}@media(min-width:1500px){.family-card{height:202px}.family-card h3{font-size:19px}}@media(max-width:700px){.family-toolbar{flex-wrap:wrap}.view-switch{margin-left:auto}.view-switch button{font-size:10px;padding:7px 9px}.demo-nav a{padding:7px;font-size:10px}.collection-name{display:none}.family-card{width:10%;height:174px}.family-card h3{font-size:15px}.family-note:before{content:'左右滑动探索完整画布。';display:block}.family-legend{display:block;padding-top:30px}.family-legend>div+div{margin-top:25px}.family-empty{width:320px}}@media(prefers-reduced-motion:reduce){.family-card,.family-zone{transition:none}}

.family-card .card-swatches{flex-wrap:nowrap;gap:2px}.family-card .card-swatches i{width:9px;height:9px;flex-shrink:0}
/* Independent mind-map nodes: no family background enclosing descendants. */
.family-canvas{aspect-ratio:1440/2420;background:#f7f6ee}.parent-fill,.child-fill{stroke:#ffffff;stroke-width:2}.family-edge{stroke:#5d6f58;opacity:.68;stroke-width:2;stroke-linejoin:round}.family-edge.matched{stroke:#193c2b;stroke-width:3;opacity:1}.mood-bottom{color:#193c2b}.family-card{height:194px}.family-canvas .family-card .card-index{margin-bottom:16px}@media(max-width:700px){.family-card{height:185px}}

/* Selection follows the actual irregular block boundary. */
.family-node:focus-visible>.parent-fill,.family-node:focus-visible>.child-fill,.family-node[aria-pressed=true]>.parent-fill,.family-node[aria-pressed=true]>.child-fill,.family-node.matched>.parent-fill,.family-node.matched>.child-fill{stroke:var(--ink);stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round}

/* Botanical families: flower centers and separate petals. */
.family-canvas{aspect-ratio:1800/3000;min-width:1440px;background:#f8f5ec}
.family-edge{stroke:#5a5c37;stroke-width:2.4;opacity:.8;stroke-linecap:round}.stamen{fill:#806f3c;pointer-events:none}
.parent-fill{stroke:#fff9;stroke-width:3}.child-fill{stroke:#fff9;stroke-width:2}
.node-label{font-size:28px;font-family:Georgia,"Songti SC",serif}.child-label{font-size:23px}.node-count{font-size:14px}
.family-card{height:194px}.family-note{margin:18px 4px}.family-note:before{content:none}
@media(max-width:700px){.family-note:before{content:'左右滑动探索';display:block}.family-card{height:194px}}

.family-card{height:174px}.family-card h3{font-size:15px}.family-card .card-index{margin-bottom:9px!important}.family-card .card-farm{font-size:8px}.family-card .card-keywords{font-size:8px}@media(max-width:700px){.family-card{height:174px}}

.family-canvas.hide-links .stamen{display:none}
@media(max-width:700px){.family-canvas{min-width:1120px}}
