.tree-search{width:min(320px,60%);pointer-events:auto}.tree-search,.tree-search__input-wrap{position:relative}.tree-search__icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:#666;pointer-events:none}.tree-search__input{width:100%;padding:8px 12px 8px 34px;background:rgba(10,10,15,.85);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:#d0d0d8;font-family:var(--font-display);font-size:.82rem;letter-spacing:.04em;outline:none;box-sizing:border-box;transition:border-color .25s ease,color .15s,box-shadow .25s ease}.tree-search__input:focus{border-color:rgba(212,175,55,.5);color:#e8e8ec;box-shadow:0 0 12px rgba(212,175,55,.12)}.tree-search__input::placeholder{color:#777;letter-spacing:.04em}.tree-search__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px 0;list-style:none;background:rgba(8,8,8,.97);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;z-index:1000;box-shadow:0 8px 24px rgba(0,0,0,.6)}.tree-search__option{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;color:#c0c0cc;font-family:var(--font-display);font-size:.82rem;letter-spacing:.04em;transition:background .1s,color .1s}.tree-search__option--active{background:rgba(212,175,55,.1);color:#d4af37}.tree-search__dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.tree-view{position:relative;width:100%;height:calc(100vh - var(--navbar-height) - 80px);min-height:500px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.tree-view--fullscreen{height:100vh;border-radius:0;border:none;background:var(--color-bg)}.tree-view__toolbar{position:absolute;top:var(--space-sm);left:var(--space-sm);right:var(--space-sm);z-index:10;display:flex;justify-content:center;align-items:center;pointer-events:none}.tree-view__toolbar>.tree-view__btn--icon{position:absolute;left:0}.tree-view__btn-group{display:flex;gap:4px;pointer-events:auto;position:absolute;right:0}.tree-view__btn{background:rgba(10,10,15,.85);border:1px solid rgba(212,168,67,.35);border-radius:var(--radius-sm);color:#b8b8c8;font-family:var(--font-display);font-size:.7rem;letter-spacing:.04em;padding:5px 10px;cursor:pointer;transition:color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .15s ease;pointer-events:auto}.tree-view__btn:hover{color:var(--color-gold-light);border-color:var(--color-border-hover);box-shadow:0 0 10px rgba(212,168,67,.15);transform:translateY(-1px)}.tree-view__btn:active{transform:translateY(0)}.tree-view__btn--icon{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}.tree-view__info{position:absolute;top:36px;left:var(--space-sm);z-index:10;background:rgba(10,10,15,.92);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);max-width:280px;animation:infoSlideIn .3s ease-out}@keyframes infoSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.tree-view__info-hint{font-size:.68rem;color:var(--color-text-muted);margin:0 0 var(--space-sm);line-height:1.4}.tree-view__info-section{margin-bottom:var(--space-xs)}.tree-view__info-section:last-child{margin-bottom:0}.tree-view__info-title{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:4px;font-family:var(--font-display)}.tree-view__info-items{display:flex;flex-wrap:wrap;gap:6px 12px}.tree-view__info-item{display:inline-flex;align-items:center;gap:4px;font-size:.65rem;color:var(--color-text-secondary)}.tree-view__info-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tree-view__svg{width:100%;height:100%;cursor:grab}.tree-view__svg:active{cursor:grabbing}.tree-link{fill:none;stroke:rgba(212,168,67,.25);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s ease}.tree-link--marriage{stroke:rgba(212,168,67,.45);stroke-width:2;stroke-dasharray:6,3}.tree-link--creation{stroke:rgba(147,51,234,.65);stroke-width:2;stroke-dasharray:3,6}.tree-union-sym{pointer-events:none}.tree-cross-link{fill:none;stroke:rgba(212,168,67,.5);stroke-width:2;stroke-dasharray:8,4;stroke-linecap:round}.tree-cross-sym{pointer-events:none}.tree-node{cursor:pointer}@keyframes nodeBreath{0%,to{stroke-opacity:.7;filter:none}50%{stroke-opacity:.85;filter:drop-shadow(0 0 4px currentColor)}}.tree-node__bg{fill-opacity:.15;stroke-width:2.5;stroke-opacity:.7;transition:stroke-opacity .3s ease,filter .3s ease;animation:nodeBreath 4s ease-in-out infinite;animation-play-state:running}.tree-node:hover .tree-node__bg{stroke-opacity:1;filter:drop-shadow(0 0 14px currentColor);animation-play-state:paused}.tree-node__bg--group{stroke-dasharray:2,6;stroke-width:3;fill-opacity:.1}.tree-node--group:hover .tree-node__bg--group{stroke-dasharray:none;stroke-width:2.5}.tree-node__image,.tree-node__partner-image{pointer-events:none}.tree-node__name,.tree-node__partner-name{fill:var(--color-text);font-family:Cinzel,serif;font-size:11px;font-weight:600;pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.9);transition:fill .2s ease}.tree-node:hover .tree-node__name,.tree-node:hover .tree-node__partner-name{fill:var(--color-gold-light,#f0d060)}.tree-node__union-bar{stroke:rgba(212,168,67,.45);stroke-width:2;transition:stroke .2s ease}.tree-node--union:hover .tree-node__union-bar{stroke:rgba(212,168,67,.8)}.tree-node__union-symbol{fill:rgba(212,168,67,.75);font-size:15px;pointer-events:none;transition:fill .2s ease}.tree-node--union:hover .tree-node__union-symbol{fill:var(--color-gold-light)}.tree-node__partner-bg{fill-opacity:.15;stroke-width:2.5;stroke-opacity:.7;transition:stroke-opacity .3s ease,filter .3s ease;animation:nodeBreath 4s ease-in-out infinite;animation-delay:2s}.tree-node:hover .tree-node__partner-bg{stroke-opacity:1;filter:drop-shadow(0 0 14px currentColor);animation-play-state:paused}.tree-node--header .tree-node__bg{stroke-dasharray:6,3}.tree-node--header:hover .tree-node__bg{stroke-dasharray:none}.tree-node__bg--junction{fill-opacity:.25;stroke-width:2;stroke-dasharray:4,2}.tree-node--junction:hover .tree-node__bg--junction{stroke-dasharray:none;filter:drop-shadow(0 0 8px rgba(212,168,67,.5))}.tree-node__junction-sym{pointer-events:none}.tree-node__click-target{fill:transparent}.tree-node__link{fill:var(--color-gold);font-family:Cinzel,serif;font-weight:500;transition:fill .15s ease}.tree-node__link:hover{fill:var(--color-gold-light);text-decoration:underline}.tree-node__expand,.tree-node__expand-text{pointer-events:none}.tree-view__legend-circle{display:inline-block;width:10px;height:10px;border-radius:50%;border:2px solid #6b21a8;background:rgba(107,33,168,.15)}.tree-view__legend-circle--group{border-style:dotted;border-width:3px}.tree-view__legend-line{display:inline-block;width:16px;height:0;border-top:2px solid rgba(212,168,67,.4)}.tree-view__legend-line--union{border-top-style:dashed}.tree-view__legend-line--creation{border-top:2px dashed rgba(147,51,234,.75)}@keyframes cross-ripple{0%{r:10px;opacity:.75;stroke-width:2px}to{r:22px;opacity:0;stroke-width:1px}}@keyframes cross-badge-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}.tree-node__cross-ripple{animation:cross-ripple 1.6s ease-out infinite;transform-box:fill-box;transform-origin:center}.tree-node__cross-badge{animation:cross-badge-pulse 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.tree-node__cross-click:hover+.tree-node__cross-badge,.tree-node__cross-click:hover~.tree-node__cross-badge{fill:#38c9b5}@keyframes expandPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.tree-node:hover .tree-node__expand{animation:expandPulse .8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}