:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-accent:#2563eb;--color-danger:#b91c1c;--color-edge:#cbd5e1;--color-text:#111827;--color-border:#e5e7eb;--area-physics:#0072b2;--area-society:#e69f00;--area-engineering:#d55e00;--tier-0:#9d9d9d;--tier-1:#fff;--tier-2:#1eff00;--tier-3:#45a9ff;--tier-4:#c380f1;--tier-5:#ff8000;--discord:#5865f2;--rare:#a855f7;--crisis:#ff4d5e;--color-select:#ffd23f;--tree-bg:#10141c;--tree-panel:#1a2130;--tree-card-bg:#232c3d;--tree-icon-bg:#161c28;--tree-border:#38445c;--tree-text:#dbe2ee;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-body:16px;--font-weight-body:400;--line-height-body:1.5;--font-size-label:14px;--font-weight-label:400;--line-height-label:1.2;--font-size-heading:20px;--font-weight-heading:600;--line-height-heading:1.2;--font-size-display:28px;--font-weight-display:600;--line-height-display:1.2}html,body,#root{background:var(--color-bg);height:100%;color:var(--color-text);font-family:var(--font-sans);margin:0;padding:0}.app-shell{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-header{background:var(--tree-panel);border-bottom:1px solid var(--tree-border);height:48px;padding:0 var(--space-md);flex:none;align-items:center;display:flex}.app-header__ethic{object-fit:contain;flex:none;width:28px;height:28px;margin-right:10px}.app-header__title{font-family:var(--font-sans);font-size:var(--font-size-heading);font-weight:var(--font-weight-heading);line-height:var(--line-height-heading);color:var(--tree-text);margin:0}.app-header__version{border:1px solid var(--tree-border);font-family:var(--font-mono,monospace);color:var(--tree-text-dim,var(--tree-text));background:var(--tree-bg);white-space:nowrap;border-radius:4px;margin-left:12px;padding:2px 8px;font-size:12px;line-height:1.4}.app-header__discord{color:var(--discord);font-weight:var(--font-weight-heading);font-size:var(--font-size-label);border-radius:6px;flex:none;align-items:center;gap:8px;margin-left:auto;padding:5px 10px;text-decoration:none;display:flex}.app-header__discord:hover{background:color-mix(in srgb, var(--discord) 18%, transparent)}.app-header__discord-icon{flex:none;width:22px;height:22px}.app-header__discord-text{color:var(--tree-text)}.tech-tree{flex-direction:row;flex:auto;min-height:0;display:flex;position:relative}.category-nav{background:var(--tree-panel);border-right:1px solid var(--tree-border);width:220px;min-height:0;font-family:var(--font-sans);color:var(--tree-text);flex-direction:column;flex:none;display:flex}.category-nav__scroll{min-height:0;padding:var(--space-sm) var(--space-sm) var(--space-md);flex:auto;overflow-y:auto}.category-nav__hotkeys{padding:var(--space-sm) var(--space-sm) var(--space-md);border-top:1px solid var(--tree-border);background:var(--tree-panel);flex:none}.category-nav__hotkeys-title{font-size:var(--font-size-label);font-weight:var(--font-weight-heading);letter-spacing:.02em;text-transform:uppercase;opacity:.7;margin-bottom:6px}.category-nav__hotkeys-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.category-nav__hotkey{align-items:center;gap:8px;font-size:12px;display:flex}.category-nav__key{min-width:20px;font-family:var(--font-sans);font-size:11px;font-weight:var(--font-weight-heading);text-align:center;color:var(--tree-text);background:var(--tree-icon-bg);border:1px solid var(--tree-border);border-bottom-width:2px;border-radius:4px;flex:none;padding:1px 6px}.category-nav__hotkey-action{opacity:.8}.category-nav__all{width:100%;margin-bottom:var(--space-sm);font-size:var(--font-size-label);font-weight:var(--font-weight-heading);color:var(--tree-text);border:1px solid var(--tree-border);cursor:pointer;background:0 0;border-radius:4px;padding:5px 10px}.category-nav__all[data-active]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.category-nav__all:not([data-active]):hover{border-color:var(--color-accent)}.category-nav__group{margin-bottom:var(--space-sm)}.category-nav__area{border-bottom:1px solid var(--tree-border);align-items:center;gap:6px;padding:3px 4px;display:flex}.category-nav__area-name{text-align:left;font-size:var(--font-size-label);font-weight:var(--font-weight-heading);letter-spacing:.02em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;flex:auto;padding:0}.category-nav__group[data-area=physics] .category-nav__area-name{color:var(--area-physics)}.category-nav__group[data-area=society] .category-nav__area-name{color:var(--area-society)}.category-nav__group[data-area=engineering] .category-nav__area-name{color:var(--area-engineering)}.category-nav__cats{margin:2px 0 0;padding:0;list-style:none}.category-nav__cat{align-items:center;gap:6px;padding:1px 4px 1px 8px;display:flex}.category-nav__cat-name{color:var(--tree-text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:3px;flex:auto;justify-content:space-between;align-items:center;gap:8px;padding:2px 4px;font-size:12px;display:flex}.category-nav__cat-label{align-items:center;gap:6px;min-width:0;display:flex}.category-nav__cat-icon{object-fit:contain;flex:none;width:16px;height:16px}.category-nav__cat-name:hover{background:var(--tree-border)}.category-nav__cat-name[data-dim]{opacity:.4}.category-nav__count{opacity:.6;font-variant-numeric:tabular-nums;flex:none;font-size:11px}.category-nav__check{cursor:pointer;accent-color:var(--color-accent);flex:none}.tree-viewport{background:var(--tree-bg);cursor:grab;touch-action:none;flex:auto;min-height:0;position:relative;overflow:hidden}.tree-viewport:active{cursor:grabbing}.tree-canvas{will-change:transform;position:absolute;top:0;left:0}.band-layer{z-index:0;pointer-events:none;position:absolute;inset:0}.band{background-repeat:repeat;position:absolute;left:0}.band[data-area=physics]{background-color:color-mix(in srgb, var(--area-physics) 8%, transparent)}.band[data-area=physics][data-alt="1"]{background-color:color-mix(in srgb, var(--area-physics) 14%, transparent)}.band[data-area=society]{background-color:color-mix(in srgb, var(--area-society) 8%, transparent)}.band[data-area=society][data-alt="1"]{background-color:color-mix(in srgb, var(--area-society) 14%, transparent)}.band[data-area=engineering]{background-color:color-mix(in srgb, var(--area-engineering) 8%, transparent)}.band[data-area=engineering][data-alt="1"]{background-color:color-mix(in srgb, var(--area-engineering) 14%, transparent)}.band__label{font-family:var(--font-sans);font-size:42px;line-height:1;font-weight:var(--font-weight-heading);letter-spacing:.02em;text-transform:uppercase;opacity:.9;position:absolute;top:8px;left:14px}.band[data-area=physics] .band__label{color:var(--area-physics)}.band[data-area=society] .band__label{color:var(--area-society)}.band[data-area=engineering] .band__label{color:var(--area-engineering)}.edge-layer{pointer-events:none;z-index:1;position:absolute;top:0;left:0;overflow:visible}.edge-layer__path{fill:none;stroke:var(--color-edge);stroke-width:1.5px;stroke-dasharray:5 4;opacity:.55}.edge-layer__path--highlight{fill:none;stroke:var(--color-select);stroke-width:3px;stroke-dasharray:none;opacity:1}.edge-layer__arrowhead{fill:var(--color-select)}.view-toggle{left:var(--space-md);top:var(--space-md);z-index:12;background:var(--tree-panel);border:1px solid var(--tree-border);border-radius:6px;gap:0;padding:2px;display:inline-flex;position:absolute}.view-toggle__btn{font-family:var(--font-sans);font-size:var(--font-size-label);font-weight:var(--font-weight-heading);color:var(--tree-text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:5px 12px}.view-toggle__btn:hover:not([data-active]){background:var(--tree-border)}.view-toggle__btn[data-active]{color:var(--color-select);background:color-mix(in srgb, var(--color-select) 18%, transparent)}.repack-button{right:var(--space-md);top:var(--space-md);z-index:12;font-family:var(--font-sans);font-size:var(--font-size-label);font-weight:var(--font-weight-heading);color:var(--tree-text);background:var(--tree-panel);border:1px solid var(--tree-border);cursor:pointer;border-radius:4px;padding:6px 12px;position:absolute}.repack-button:hover:not(:disabled){background:var(--tree-border)}.repack-button:disabled{opacity:.6;cursor:progress}.map-scrollbar{z-index:11;background:color-mix(in srgb, var(--tree-panel) 55%, transparent);touch-action:none;border-radius:6px;position:absolute}.map-scrollbar--h{height:10px;bottom:0;left:0;right:12px}.map-scrollbar--v{width:10px;top:0;bottom:12px;right:0}.map-scrollbar__thumb{background:color-mix(in srgb, var(--tree-text) 32%, transparent);cursor:pointer;border-radius:6px;position:absolute}.map-scrollbar__thumb:hover{background:color-mix(in srgb, var(--tree-text) 52%, transparent)}.map-scrollbar--h .map-scrollbar__thumb{top:1px;bottom:1px;left:0}.map-scrollbar--v .map-scrollbar__thumb{top:0;left:1px;right:1px}.zoom-controls{right:var(--space-md);bottom:var(--space-md);z-index:12;flex-direction:column;gap:2px;display:flex;position:absolute}.zoom-controls button{width:32px;height:32px;color:var(--tree-text);background:var(--tree-panel);border:1px solid var(--tree-border);cursor:pointer;border-radius:4px;font-size:18px;line-height:1}.zoom-controls button:hover{background:var(--tree-border)}.touch-controls{left:var(--space-md);bottom:var(--space-md);gap:var(--space-xs,4px);z-index:12;flex-direction:row;display:flex;position:absolute}.touch-controls button{width:44px;height:44px;color:var(--tree-text);background:var(--tree-panel);border:1px solid var(--tree-border);cursor:pointer;border-radius:8px;font-size:20px;line-height:1}.touch-controls button:hover{background:var(--tree-border)}.sidebar-toggle{z-index:15;width:20px;height:54px;color:var(--tree-text);background:var(--tree-panel);border:1px solid var(--tree-border);cursor:pointer;border-left:none;border-radius:0 6px 6px 0;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-toggle:hover{background:var(--tree-border)}.tech-card{box-sizing:border-box;content-visibility:auto;contain-intrinsic-size:230px 92px;background:var(--tree-card-bg);border:2px solid var(--color-border);z-index:2;font-family:var(--font-sans);border-radius:6px;display:flex;position:absolute;overflow:hidden;box-shadow:0 2px 6px #00000059}.tech-card:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#ffffff29,#79a9ff0d);border-radius:6px;position:absolute;inset:0;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13.856' height='24' viewBox='0 0 13.856 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='1' d='M6.928 5L12.99 8.5L12.99 15.5L6.928 19L0.866 15.5L0.866 8.5Z M0 -7L6.062 -3.5L6.062 3.5L0 7L-6.062 3.5L-6.062 -3.5Z M13.856 -7L19.918 -3.5L19.918 3.5L13.856 7L7.794 3.5L7.794 -3.5Z M0 17L6.062 20.5L6.062 27.5L0 31L-6.062 27.5L-6.062 20.5Z M13.856 17L19.918 20.5L19.918 27.5L13.856 31L7.794 27.5L7.794 20.5Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13.856' height='24' viewBox='0 0 13.856 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='1' d='M6.928 5L12.99 8.5L12.99 15.5L6.928 19L0.866 15.5L0.866 8.5Z M0 -7L6.062 -3.5L6.062 3.5L0 7L-6.062 3.5L-6.062 -3.5Z M13.856 -7L19.918 -3.5L19.918 3.5L13.856 7L7.794 3.5L7.794 -3.5Z M0 17L6.062 20.5L6.062 27.5L0 31L-6.062 27.5L-6.062 20.5Z M13.856 17L19.918 20.5L19.918 27.5L13.856 31L7.794 27.5L7.794 20.5Z'/%3E%3C/svg%3E");-webkit-mask-size:13.856px 24px;mask-size:13.856px 24px;-webkit-mask-repeat:repeat;mask-repeat:repeat}.tech-card[data-perk][data-area]{border-color:var(--color-select)}.tech-card[data-perk][data-area] .tech-card__title{background-image:none;background-color:color-mix(in srgb, var(--color-select) 22%, var(--tree-card-bg))}.tech-card[data-source][data-area]{border-color:var(--color-accent)}.tech-card[data-source][data-area] .tech-card__title{background-image:none;background-color:color-mix(in srgb, var(--color-accent) 24%, var(--tree-card-bg))}.tech-card__icon{background:var(--tree-icon-bg);border-right:1px solid var(--tree-border);flex:none;justify-content:center;align-self:stretch;align-items:center;width:60px;display:flex;position:relative}.tech-card__icon img{object-fit:contain;width:48px;height:48px}.tech-card__tier{text-align:center;min-width:16px;font-size:11px;font-weight:var(--font-weight-heading);color:#fff;background:#0009;border-radius:3px;padding:0 3px;line-height:1.4;position:absolute;bottom:3px;left:3px}.tier-num{white-space:nowrap;font-weight:700}.tech-card__tier[data-tier="0"],.tier-num[data-tier="0"]{color:var(--tier-0)}.tech-card__tier[data-tier="1"],.tier-num[data-tier="1"]{color:var(--tier-1)}.tech-card__tier[data-tier="2"],.tier-num[data-tier="2"]{color:var(--tier-2)}.tech-card__tier[data-tier="3"],.tier-num[data-tier="3"]{color:var(--tier-3)}.tech-card__tier[data-tier="4"],.tier-num[data-tier="4"]{color:var(--tier-4)}.tech-card__tier[data-tier="5"],.tier-num[data-tier="5"]{color:var(--tier-5)}.tech-card__body{flex-direction:column;flex:auto;min-width:0;display:flex}.tech-card__title{font-size:13px;font-weight:var(--font-weight-heading);color:#eef2f7;text-shadow:0 1px 2px #0000008c;white-space:nowrap;text-overflow:ellipsis;background:var(--tree-border);padding:4px 8px;line-height:1.25;overflow:hidden}.tech-card__meta{color:var(--tree-text);opacity:.75;white-space:nowrap;text-overflow:ellipsis;padding:4px 8px 0;font-size:11px;line-height:1.3;overflow:hidden}.tech-card__stats{color:var(--tree-text);opacity:.9;white-space:nowrap;text-overflow:ellipsis;padding:2px 8px 6px;font-size:11px;line-height:1.3;overflow:hidden}.tech-card__danger{color:var(--color-danger);-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0 8px 4px;font-size:10px;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.tech-card__cost-icon{vertical-align:-.15em;object-fit:contain;width:12px;height:12px;margin-right:2px}.tech-card__cat-icon{vertical-align:-.2em;object-fit:contain;width:13px;height:13px;margin-right:3px}.tech-card{cursor:pointer}.tech-card[data-selected]{outline:2px solid var(--color-select);outline-offset:1px;box-shadow:0 0 0 3px color-mix(in srgb, var(--color-select) 45%, transparent), 0 2px 6px #00000059;z-index:3}.tech-card__chevron{z-index:4;width:20px;height:24px;color:var(--tree-text);background:color-mix(in srgb, var(--tree-panel) 80%, transparent);border:1px solid var(--tree-border);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.tech-card__chevron:hover{background:var(--tree-border);color:var(--color-select)}.tech-card__chevron[data-expanded]{color:var(--color-select);border-color:color-mix(in srgb, var(--color-select) 60%, var(--tree-border))}.bucket-card{box-sizing:border-box;content-visibility:auto;contain-intrinsic-size:230px 92px;background:var(--tree-panel);border:2px dashed var(--tree-border);border-left:5px solid var(--tree-border);cursor:pointer;z-index:2;font-family:var(--font-sans);color:var(--tree-text);border-radius:6px;align-items:center;padding:8px 12px;display:flex;position:absolute;overflow:hidden;box-shadow:0 2px 6px #00000059}.bucket-card:hover{border-top-color:color-mix(in srgb, var(--color-select) 50%, var(--tree-border));border-right-color:color-mix(in srgb, var(--color-select) 50%, var(--tree-border));border-bottom-color:color-mix(in srgb, var(--color-select) 50%, var(--tree-border))}.bucket-card:focus-visible{outline:2px solid var(--color-select);outline-offset:1px}.bucket-card[data-expanded]{border-style:solid}.bucket-card__body{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.bucket-card__title{font-size:15px;font-weight:var(--font-weight-heading);color:#eef2f7;text-shadow:0 1px 2px #0000008c;white-space:nowrap;text-overflow:ellipsis;line-height:1.2;overflow:hidden}.bucket-card__meta{color:color-mix(in srgb, var(--tree-text) 72%, transparent);font-size:12px;line-height:1.2}.bucket-card__count{color:var(--color-select);font-size:12px;font-weight:600}.bucket-card__chevron{z-index:4;color:var(--tree-text);font-size:14px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.bucket-card[data-expanded] .bucket-card__chevron{color:var(--color-select)}.bucket-card[data-bucket=starting]{border-left-color:var(--color-accent)}.bucket-card[data-bucket=insight]{border-left-color:var(--area-physics)}.bucket-card[data-bucket=dangerous]{border-left-color:var(--color-danger)}.bucket-card[data-bucket=repeatable]{border-left-color:var(--area-society)}.bucket-card[data-bucket=archaeology]{border-left-color:var(--area-engineering)}.bucket-card[data-bucket=ambition]{border-left-color:var(--crisis)}.bucket-card[data-bucket=shroud]{border-left-color:var(--rare)}.bucket-card[data-bucket=standard]{border-left-color:var(--color-edge)}.bucket-card[data-bucket=event]{border-left-color:var(--color-select)}.tech-card[data-area=physics]{border-color:var(--area-physics);--tech-color:var(--area-physics)}.tech-card[data-area=physics] .tech-card__title{background-color:color-mix(in srgb, var(--area-physics) 60%, #0c111a)}.tech-card[data-area=society]{border-color:var(--area-society);--tech-color:var(--area-society)}.tech-card[data-area=society] .tech-card__title{background-color:color-mix(in srgb, var(--area-society) 55%, #0c111a)}.tech-card[data-area=engineering]{border-color:var(--area-engineering);--tech-color:var(--area-engineering)}.tech-card[data-area=engineering] .tech-card__title{background-color:color-mix(in srgb, var(--area-engineering) 60%, #0c111a)}.tech-card[data-danger]:not([data-bucket]) .tech-card__title{background-image:linear-gradient(to right, color-mix(in srgb, var(--tech-color,var(--tree-border)) 60%, #0c111a), color-mix(in srgb, var(--color-danger) 65%, #0c111a))}.tech-card[data-rare]:not([data-danger]):not([data-bucket]) .tech-card__title{background-image:linear-gradient(to right, color-mix(in srgb, var(--tech-color,var(--tree-border)) 60%, #0c111a), color-mix(in srgb, var(--rare) 60%, #0c111a))}.tree-canvas.lod-simple .tech-card:before,.tree-canvas.panning .tech-card:before{display:none}.tree-canvas.lod-simple .tech-card,.tree-canvas.panning .tech-card{box-shadow:none;background-image:none;border-radius:3px}.tree-canvas.lod-simple .tech-card__body,.tree-canvas.lod-simple .tech-card__tier,.tree-canvas.panning .tech-card__body,.tree-canvas.panning .tech-card__tier{display:none}.tree-canvas.lod-simple .tech-card__icon,.tree-canvas.panning .tech-card__icon{border-right:none;width:100%}.tech-tooltip{z-index:30;background:var(--tree-panel);border:1px solid var(--tree-border);border-left:3px solid var(--tree-border);max-height:calc(100vh - 16px);font-family:var(--font-sans);color:var(--tree-text);pointer-events:auto;border-radius:6px;padding:8px 10px;position:fixed;overflow-y:auto;box-shadow:0 6px 20px #00000080}.tech-tooltip[data-area=physics]{border-left-color:var(--area-physics)}.tech-tooltip[data-area=society]{border-left-color:var(--area-society)}.tech-tooltip[data-area=engineering]{border-left-color:var(--area-engineering)}.tech-tooltip__title{font-size:14px;font-weight:var(--font-weight-heading);color:#fff;margin-bottom:2px}.tech-tooltip__meta{opacity:.75;margin-bottom:6px;font-size:11px}.tech-tooltip__cost-icon{vertical-align:-.2em;object-fit:contain;width:1.05em;height:1.05em;margin:0 1px}.tech-tooltip__badges{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.tech-badge{background:var(--tree-border);color:var(--tree-text);border-radius:3px;padding:1px 6px;font-size:10px}.tech-badge--rare{color:#fff;background:#1f6feb}.tech-badge--danger{color:#fff;background:#b3261e}.tech-badge--dlc{border:1px solid var(--tree-border);background:0 0}.tech-tooltip__sec{border-top:1px solid var(--tree-border);margin-top:8px;padding-top:6px}.tech-tooltip__sec-title{font-size:11px;font-weight:var(--font-weight-heading);letter-spacing:.02em;color:var(--area-society);margin-bottom:3px}.tech-tooltip__desc{opacity:.92;margin:0;font-size:12px;line-height:1.4}.tech-tooltip__weight-base{opacity:.92;font-size:12px;line-height:1.4}.tech-tooltip__weight-mods{opacity:.9;margin:3px 0 0;padding:0;font-size:12px;line-height:1.4;list-style:none}.tech-tooltip__weight-mods li{padding-left:10px;position:relative}.tech-tooltip__weight-mods li:before{content:"•";opacity:.5;position:absolute;left:0}.tech-tooltip__prereqs{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.tech-tooltip__prereq{align-items:center;gap:8px;font-size:12px;display:flex}.tech-tooltip__prereq img{object-fit:contain;background:var(--tree-icon-bg);border:1px solid var(--tree-border);border-radius:3px;flex:none;width:26px;height:26px}.tech-tooltip__prereq[data-area=physics] img{border-color:var(--area-physics)}.tech-tooltip__prereq[data-area=society] img{border-color:var(--area-society)}.tech-tooltip__prereq[data-area=engineering] img{border-color:var(--area-engineering)}.tech-tooltip__prereq-dot{border:1px dashed var(--tree-border);border-radius:3px;flex:none;width:26px;height:26px}.tech-tooltip__prereq-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tech-tooltip__prereq--link{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;margin:0;padding:2px 4px}.tech-tooltip__prereq--link:hover,.tech-tooltip__prereq--link:focus-visible{background:color-mix(in srgb, var(--color-select) 18%, transparent);outline:none}.tech-tooltip__prereq-go{opacity:0;color:var(--color-select);flex:none;margin-left:auto;font-size:13px}.tech-tooltip__prereq--link:hover .tech-tooltip__prereq-go,.tech-tooltip__prereq--link:focus-visible .tech-tooltip__prereq-go{opacity:.9}.tech-tooltip__effects{opacity:.92;margin:0;padding:0;font-size:12px;line-height:1.4;list-style:none}.tech-tooltip__effects li{padding-left:10px;position:relative}.tech-tooltip__effects li:before{content:"•";opacity:.5;position:absolute;left:0}.tech-tooltip__prereq--more{opacity:.7;padding-left:34px}.ancestry-panel{z-index:28;background:var(--tree-panel);border:1px solid var(--tree-border);border-top:3px solid var(--color-select);max-height:520px;font-family:var(--font-sans);color:var(--tree-text);border-radius:6px;flex-direction:column;padding:8px;display:flex;position:fixed;overflow:hidden;box-shadow:0 6px 20px #00000080}.ancestry-panel__header{font-size:11px;font-weight:var(--font-weight-heading);letter-spacing:.02em;text-transform:uppercase;color:var(--color-select);flex:none;margin-bottom:6px}.ancestry-panel__cols{flex:auto;align-items:flex-start;gap:10px;display:flex;overflow:auto}.ancestry-panel__col{border-right:1px dashed var(--tree-border);flex-direction:column;gap:6px;padding-right:10px;display:flex}.ancestry-panel__col:last-child{border-right:none;padding-right:0}.ancestry-mini{text-align:left;background:var(--tree-card-bg);border:1px solid var(--tree-border);border-left:3px solid var(--tree-border);width:150px;color:var(--tree-text);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:4px 6px;display:flex;position:relative}.ancestry-mini:hover{border-color:var(--color-select)}.ancestry-mini[data-area=physics]{border-left-color:var(--area-physics)}.ancestry-mini[data-area=society]{border-left-color:var(--area-society)}.ancestry-mini[data-area=engineering]{border-left-color:var(--area-engineering)}.ancestry-mini[data-root]{outline:2px solid var(--color-select);outline-offset:1px}.ancestry-mini[data-hidden]{opacity:.85;border-style:dashed}.ancestry-mini__hidden-dot{background:var(--color-select);border-radius:50%;width:7px;height:7px;position:absolute;top:3px;right:3px;box-shadow:0 0 0 1px #0006}.ancestry-mini__icon{background:var(--tree-icon-bg);border:1px solid var(--tree-border);border-radius:3px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.ancestry-mini__icon img{object-fit:contain;width:26px;height:26px}.ancestry-mini__body{flex-direction:column;min-width:0;display:flex}.ancestry-mini__name{font-size:12px;font-weight:var(--font-weight-heading);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.ancestry-mini__meta{opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.2;overflow:hidden}.overlay{background:var(--tree-bg);z-index:20;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay__card{background:var(--tree-panel);padding:var(--space-lg);border:1px solid var(--tree-border);text-align:center;border-radius:6px;max-width:420px;box-shadow:0 8px 30px #00000080}.overlay__card--danger{border-left:3px solid var(--color-danger);text-align:left}.overlay__heading{margin:0 0 var(--space-sm);font-family:var(--font-sans);font-size:var(--font-size-heading);font-weight:var(--font-weight-heading);line-height:var(--line-height-heading);color:var(--tree-text)}.overlay__heading--danger{color:var(--color-danger)}.overlay__body{font-family:var(--font-sans);font-size:var(--font-size-body);font-weight:var(--font-weight-body);line-height:var(--line-height-body);color:color-mix(in srgb, var(--tree-text) 78%, transparent);margin:0}.overlay__retry-button{margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-accent);color:var(--color-surface);font-family:var(--font-sans);font-size:var(--font-size-label);font-weight:var(--font-weight-heading);cursor:pointer;border:none;border-radius:4px}.overlay__spinner{width:32px;height:32px;margin:0 auto var(--space-md);border:3px solid var(--tree-border);border-top-color:var(--color-select);border-radius:50%;animation:.8s linear infinite overlay-spin}@keyframes overlay-spin{to{transform:rotate(360deg)}}.find-overlay{z-index:40;background:#00000073;justify-content:center;align-items:flex-start;padding-top:14vh;display:flex;position:fixed;inset:0}.find-box{background:var(--tree-panel);border:1px solid var(--tree-border);width:min(560px,92vw);font-family:var(--font-sans);color:var(--tree-text);border-radius:8px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 12px 40px #0000008c}.find-box__input{font-family:var(--font-sans);color:var(--tree-text);border:none;border-bottom:1px solid var(--tree-border);background:0 0;outline:none;flex:none;padding:14px 16px;font-size:16px}.find-box__input::placeholder{color:var(--tree-text);opacity:.45}.find-box__results{max-height:46vh;margin:0;padding:4px;list-style:none;overflow-y:auto}.find-box__empty{opacity:.55;padding:10px 12px;font-size:13px}.find-box__result{cursor:pointer;border-left:3px solid #0000;border-radius:4px;align-items:center;gap:10px;padding:6px 10px;display:flex}.find-box__result[data-area=physics]{border-left-color:var(--area-physics)}.find-box__result[data-area=society]{border-left-color:var(--area-society)}.find-box__result[data-area=engineering]{border-left-color:var(--area-engineering)}.find-box__result[data-active]{background:var(--tree-border)}.find-box__icon{object-fit:contain;background:var(--tree-icon-bg);border:1px solid var(--tree-border);border-radius:3px;flex:none;width:28px;height:28px}.find-box__icon--empty{border-style:dashed}.find-box__name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:14px;overflow:hidden}.find-box__meta{opacity:.6;font-variant-numeric:tabular-nums;flex:none;font-size:11px}.tech-card[data-bucket=researched]{border-width:3px;border-color:var(--empire-researched);box-shadow:0 0 0 1px var(--empire-researched)}.tech-card[data-bucket=available]{border-color:var(--empire-available);filter:brightness(1.12)saturate(1.08);outline:2px solid var(--empire-available);outline-offset:1px;box-shadow:0 0 16px color-mix(in srgb, var(--empire-available) 45%, transparent);z-index:6}.tech-card[data-bucket=reachable]{opacity:.42}.tech-card[data-bucket=never]{filter:grayscale()brightness(.72);opacity:.5}.tech-card[data-bucket][data-selected]{filter:none;opacity:1}.empire-panel{--empire-researched:#57c96a;--empire-available:var(--color-select,#ffcf6b);--empire-reachable:#6b8cff;--empire-never:#8794ad}.tech-card{--empire-researched:#57c96a;--empire-available:var(--color-select,#ffcf6b)}.empire-panel{width:var(--nav-width,260px);box-sizing:border-box;height:100%;padding:var(--space-md,12px);background:var(--tree-panel);border-right:1px solid var(--tree-border);color:var(--tree-text);flex-direction:column;flex:none;gap:12px;display:flex;overflow-y:auto}.empire-panel__title{font-size:14px;font-weight:var(--font-weight-heading,600);letter-spacing:.3px}.empire-panel__muted,.empire-panel__validation{opacity:.7;font-size:12px}.empire-panel__validation[data-warn]{color:#ff6b7a;opacity:1}.empire-panel__error{color:#ff6b7a;font-size:12px}.empire-drop{border:1.5px dashed var(--tree-border);text-align:center;color:color-mix(in srgb, var(--tree-text) 70%, transparent);cursor:pointer;border-radius:8px;padding:14px 10px;font-size:12px}.empire-drop:hover{border-color:var(--color-select,#ffcf6b)}.empire-drop code{color:var(--color-select,#ffcf6b)}.empire-panel__sample{border:1px solid var(--tree-border);background:var(--tree-panel);color:var(--tree-text);font:inherit;cursor:pointer;border-radius:8px;padding:8px 12px}.empire-panel__sample:hover:not(:disabled){background:var(--tree-border)}.empire-panel__pick{opacity:.85;flex-direction:column;gap:4px;font-size:12px;display:flex}.empire-panel__pick select{background:var(--tree-panel);color:var(--tree-text);border:1px solid var(--tree-border);font:inherit;border-radius:6px;padding:7px 8px}.empire-identity{flex-wrap:wrap;gap:4px;display:flex}.empire-chip{border:1px solid var(--tree-border);color:color-mix(in srgb, var(--tree-text) 75%, transparent);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px}.empire-legend{flex-direction:column;gap:6px;margin-top:4px;display:flex}.empire-legend__row{align-items:center;gap:8px;font-size:12px;display:flex}.empire-legend__swatch{border-radius:3px;flex:0 0 12px;width:12px;height:12px}.empire-legend__row[data-bucket=researched] .empire-legend__swatch{border:3px solid var(--empire-researched);background:0 0}.empire-legend__row[data-bucket=available] .empire-legend__swatch{background:var(--empire-available);box-shadow:0 0 8px var(--empire-available)}.empire-legend__row[data-bucket=reachable] .empire-legend__swatch{background:var(--empire-reachable);opacity:.45}.empire-legend__row[data-bucket=never] .empire-legend__swatch{background:var(--empire-never);filter:grayscale()}.empire-legend__label{flex:1}.empire-legend__hint{opacity:.5;font-size:10px}.empire-legend__count{font-variant-numeric:tabular-nums;font-weight:600}
