#phylo-tree-container{container-type:inline-size;container-name:tree-panel;contain:paint;width:100%;min-height:clamp(400px,80vh,600px);position:relative;overflow:hidden;overscroll-behavior:none;padding-right:clamp(16px,10vw,80px)}#phylo-tree-container svg{display:block;width:100%;height:100%;cursor:grab;touch-action:none}#phylo-tree-container svg:active{cursor:grabbing}.tree-node{transition:opacity var(--duration-normal) var(--ease-out)}.tree-node .node-circle{transition:opacity var(--duration-fast) ease,stroke-width var(--duration-normal) ease,transform var(--duration-fast) ease;cursor:pointer;transform-origin:center;transform-box:fill-box;filter:drop-shadow(0 0 calc(var(--data-richness, .2) * 6px) rgba(var(--color-gold-rgb),.4))}.tree-node.hovered .node-circle{opacity:.85;transform:scale(1.15);stroke-width:3px}.tree-node.status-confirmed .node-circle{fill:var(--color-node-confirmed);stroke:var(--color-node-confirmed);stroke-width:2px}.tree-node.status-debated .node-circle{fill:var(--color-node-debated);stroke:var(--color-node-debated);stroke-width:2px;stroke-dasharray:4 2}.tree-node.status-provisional .node-circle{fill:var(--color-node-provisional);stroke:var(--color-node-provisional);stroke-width:2px;stroke-dasharray:2 2}.tree-node.selected .node-circle{stroke-width:3px;filter:url(#node-glow)}.tree-node:focus-visible .node-circle{outline:2px solid var(--color-focus);outline-offset:3px;filter:drop-shadow(0 0 4px var(--color-focus))}@keyframes node-pulse{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.tree-node .node-circle.node-pulse{animation:node-pulse .6s ease}.touch-target{pointer-events:all;fill:transparent;stroke:none;cursor:pointer}.tree-node .node-label{font-size:var(--text-xs);fill:var(--color-text-100);pointer-events:none;user-select:none}.tree-node .node-label .sci-name{font-style:italic;font-family:var(--font-serif)}.tree-node .node-label .common-name{font-size:var(--text-xs);fill:var(--color-text-300)}.tree-node .node-label.label-left .sci-name,.tree-node .node-label.label-left .common-name{text-anchor:end}.tree-node .label-leader{stroke:var(--color-branch-light);stroke-width:1;opacity:.3;pointer-events:none}.tree-gridline{stroke:var(--color-base-700);stroke-width:.5;stroke-dasharray:3 6;opacity:.4}.tree-link{fill:none;stroke-width:1.5px}.tree-link.status-confirmed{stroke:var(--color-branch);stroke-dasharray:none}.tree-link.status-debated{stroke:var(--color-branch);stroke-dasharray:6 3}.tree-link.status-provisional{stroke:var(--color-branch-light);stroke-dasharray:2 3}.tree-link.highlighted{stroke:var(--color-gold);stroke-width:3px;stroke-dasharray:none;pointer-events:none}.clade-member{opacity:1}.clade-member .node-circle{stroke:var(--color-gold);stroke-width:2.5px}.clade-member.tree-link{stroke:var(--color-gold);stroke-opacity:.6;stroke-dasharray:none;pointer-events:none}.clade-dimmed{opacity:.2}.genus-filtered{opacity:.15;pointer-events:none;transition:opacity var(--duration-normal) ease}.genus-filter-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--color-base-800);border:1px solid var(--color-base-600);border-radius:var(--radius-sm);padding:5px var(--space-2);font-size:var(--text-sm);color:var(--color-text-100);cursor:pointer;font-family:inherit;line-height:1.4}.genus-filter-trigger:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.genus-filter-trigger:after{content:"▼";font-size:var(--text-3xs);color:var(--color-text-300);margin-left:var(--space-2)}.genus-filter-trigger[aria-expanded=true]:after{content:"▲"}.genus-filter-popover{display:none;position:absolute;left:0;right:0;margin-top:var(--space-1);border:1px solid var(--color-base-700);border-radius:var(--radius-lg);z-index:var(--z-dropdown);max-height:260px;overflow-y:auto;box-shadow:var(--shadow-lg)}.genus-filter-popover.open{display:block}.genus-filter-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);cursor:pointer}.genus-filter-row:hover,.genus-filter-row:focus-visible{background:var(--color-base-700)}.genus-filter-row:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.genus-filter-row.dimmed{opacity:.5}.genus-filter-checkbox{accent-color:var(--color-gold);width:14px;height:14px;cursor:pointer;flex-shrink:0}.genus-filter-label{font-size:var(--text-sm);color:var(--color-text-100);cursor:pointer}.genus-filter-actions{display:flex;gap:var(--space-3);padding:var(--space-2) var(--space-2);border-top:1px solid var(--color-base-700)}.genus-filter-action{background:none;border:none;color:var(--color-text-300);font-size:var(--text-xs);cursor:pointer;padding:0;text-decoration:underline;font-family:inherit}.genus-filter-action:hover{color:var(--color-text-100)}.path-finder-link{stroke:var(--color-gold)!important;stroke-width:3px!important;stroke-dasharray:none!important;filter:url(#node-glow)}.path-finder-link.glow-trail{stroke-dasharray:var(--path-len)!important;stroke-dashoffset:var(--path-len)!important;animation:glow-trail-reveal var(--trail-duration, .6s) var(--ease-out) var(--trail-delay, 0ms) forwards}@keyframes glow-trail-reveal{to{stroke-dashoffset:0}}.ancestor-glow{stroke:var(--color-gold)!important;stroke-width:3px!important;stroke-dasharray:none!important;filter:url(#node-glow)}.ancestor-glow.ancestor-glow-animated{stroke-dasharray:var(--path-len)!important;stroke-dashoffset:var(--path-len)!important;animation:glow-trail-reveal var(--trail-duration, .6s) var(--ease-out) var(--trail-delay, 0ms) forwards}@keyframes path-marker-pulse{0%{r:12;opacity:1}to{r:20;opacity:0}}.path-finder-marker{fill:none;stroke:var(--color-gold);stroke-width:2px;animation:path-marker-pulse 1.2s ease-out infinite}.path-finder-info{position:absolute;bottom:var(--space-4);left:50%;transform:translate(-50%);z-index:var(--z-dropdown);border:1px solid rgba(var(--color-gold-rgb),.12);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-family:var(--font-sans);font-size:var(--text-md);color:var(--color-text-100);text-align:center;max-width:500px;box-shadow:var(--shadow-lg),0 0 0 1px rgba(var(--color-gold-rgb),.05)}.path-finder-info .pf-path{margin-bottom:var(--space-1)}.path-finder-info .pf-path em{font-family:var(--font-serif);font-style:italic;color:var(--color-text-100)}.path-finder-info .pf-distance{font-size:var(--text-xs);color:var(--color-text-300)}.path-finder-info .pf-close{position:absolute;top:var(--space-1);right:var(--space-2);background:none;border:none;color:var(--color-text-300);font-size:var(--text-lg);cursor:pointer;padding:0 var(--space-1);line-height:1}.path-finder-info .pf-close:hover{color:var(--color-text-100)}.path-finder-info .pf-close:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.time-axis line,.time-axis path{stroke:var(--color-branch-light);stroke-width:1px}.time-axis text{fill:var(--color-branch-light);font-size:var(--text-xs);font-family:var(--font-sans)}.time-axis .mya-label{fill:var(--color-text-300);font-size:var(--text-3xs);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.tree-tooltip{position:absolute;padding:var(--space-3) var(--space-4);z-index:var(--z-tooltip);max-width:min(280px,calc(100vw - 2rem));visibility:hidden}.tree-tooltip.visible{visibility:visible}.tree-tooltip .tooltip-sci-name{font-family:var(--font-serif);font-style:italic;color:var(--color-text-100);font-size:var(--text-base);margin-bottom:2px;overflow-wrap:break-word}.tree-tooltip .tooltip-common-name{color:var(--color-text-300);font-size:var(--text-sm);margin-bottom:var(--space-2);overflow-wrap:break-word}.tree-tooltip .tooltip-detail{color:var(--color-text-400);font-size:var(--text-xs);line-height:var(--leading-normal)}.tree-tooltip .tooltip-detail span{color:var(--color-text-100)}.tree-controls{position:absolute;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);z-index:var(--z-controls);background:var(--glass-bg-raised);border:1px solid rgba(var(--color-slate-rgb),.12);border-radius:var(--radius-xl);padding:var(--space-1);box-shadow:var(--shadow-sm)}.tree-controls button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);line-height:1}.color-mode-toggle{display:flex;margin-top:var(--space-1)}.color-mode-toggle button{flex:1;width:auto;height:28px;font-size:var(--text-xs);border:none;border-radius:0;padding:0 var(--space-2)}.era-toggle{margin-top:var(--space-1)}.era-toggle button{width:auto;height:28px;font-size:var(--text-xs);padding:0 10px;border:1px solid var(--color-base-600)}.export-dropdown{position:relative;margin-top:var(--space-1)}.export-dropdown>button{width:auto;height:28px;font-size:var(--text-xs);padding:0 10px}.export-dropdown>button:hover{color:var(--color-text-100)}.export-menu{position:absolute;bottom:calc(100% + var(--space-1));right:0;display:none;flex-direction:column;min-width:80px;overflow:hidden;z-index:var(--z-dropdown)}.export-menu.open{display:flex}.export-menu button{width:auto;height:auto;font-size:var(--text-sm);padding:var(--space-2) 14px;background:transparent;border:none;border-radius:0;cursor:pointer;text-align:left}.era-band{opacity:.06;pointer-events:none}.era-label{fill:var(--color-text-300);font-size:var(--text-xs);font-weight:500;opacity:.75;pointer-events:none;font-family:var(--font-sans)}@media(prefers-reduced-motion:reduce){.era-bands{transition:none!important}}.tree-legend{position:absolute;top:var(--space-4);left:var(--space-4);z-index:var(--z-controls);border:1px solid rgba(var(--color-slate-rgb),.15);border-radius:var(--radius-lg);max-width:200px;font-size:var(--text-sm);color:var(--color-text-100);box-shadow:var(--shadow-md)}.tree-legend-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;user-select:none}.tree-legend-header:hover{background:rgba(var(--color-base-800-rgb),.5);border-radius:var(--radius-lg)}.tree-legend-header:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.tree-legend-chevron{font-size:var(--text-3xs);color:var(--color-text-400)}.tree-legend-title{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--color-text-400)}.tree-legend-body{position:relative;padding:0 var(--space-3) var(--space-2)}.tree-legend-item{display:flex;align-items:center;gap:var(--space-2);padding:3px 0}.tree-legend-genus{cursor:pointer;border-radius:var(--radius-sm);padding:3px var(--space-1);margin:0 calc(-1 * var(--space-1))}.tree-legend-genus:hover{background:rgba(var(--color-base-800-rgb),.6)}.tree-legend-genus:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.tree-legend-glow-item{margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid rgba(var(--color-base-800-rgb),.4)}.tree-legend-label{font-size:var(--text-xs);color:var(--color-text-100);white-space:nowrap}@container tree-panel (max-width: 767px){.tree-node .node-label .common-name{display:none}.tree-node .node-label .sci-name{font-size:var(--text-3xs)}.tree-controls{bottom:calc(60px + env(safe-area-inset-bottom,0px));right:var(--space-2)}.tree-legend{top:auto;bottom:calc(60px + env(safe-area-inset-bottom,0px));left:var(--space-2);max-width:170px;font-size:var(--text-xs)}.tree-legend-label{font-size:var(--text-xs)}.genus-filter-popover{max-height:200px}.path-finder-info{left:var(--space-2);right:var(--space-2);transform:none;max-width:none}}@media(max-width:767px){.tree-tooltip{position:fixed;inset:auto 0 0;max-width:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;transform:none!important}}@media(max-width:767px)and (orientation:landscape){.tree-controls{max-height:30vh;overflow-y:auto}}@media(prefers-reduced-motion:reduce){.tree-node .node-circle,.tree-tooltip,.tree-link{transition:none}.tree-node,.tree-link{opacity:1!important}.tree-link{stroke-dashoffset:0!important}.tree-node.hovered .node-circle{transform:none}.tree-node .node-circle.node-pulse{animation:none}.clade-member,.clade-dimmed,.genus-filtered{transition:none}.path-finder-marker{animation:none;opacity:.8}.path-finder-link.glow-trail,.ancestor-glow.ancestor-glow-animated{animation:none!important;stroke-dasharray:none!important;stroke-dashoffset:0!important}}.compare-select-ring{stroke:var(--color-gold)!important;stroke-width:3px!important;animation:compare-pulse 1.2s ease-in-out infinite}@keyframes compare-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.4}}@media(prefers-reduced-motion:reduce){.compare-select-ring{animation:none}}
