body.bleed{overflow:hidden}.tree-app{height:calc(100dvh - 57px);position:relative;overflow:hidden}#tree{touch-action:none;cursor:grab;width:100%;height:100%;display:block}#tree:active{cursor:grabbing}.tree-toolbar{z-index:5;pointer-events:none;flex-wrap:wrap;gap:8px;display:flex;position:absolute;top:12px;left:16px;right:16px}.tree-toolbar>*{pointer-events:auto}.search{flex:220px;max-width:340px;position:relative}.search input{background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23837d72' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 3.5 3.5'/%3E%3C/svg%3E") no-repeat 12px center;width:100%;box-shadow:var(--shadow);padding-left:36px}#search-results{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px;max-height:50vh;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}#search-results li{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:.9rem;display:flex}#search-results li[aria-selected=true],#search-results li:hover{background:var(--surface-2)}#search-results .hint{color:var(--text-3);white-space:nowrap;margin-left:auto;font-size:.78rem}.tb-buttons{flex-wrap:wrap;gap:6px;display:flex}.tb-buttons .btn{box-shadow:var(--shadow)}.legend{z-index:4;color:var(--text-2);background:color-mix(in srgb, var(--card) 80%, transparent);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:2px;padding:10px 14px;display:flex;position:absolute;bottom:12px;left:16px}.legend span{align-items:center;gap:6px;display:inline-flex}.principle-float{max-width:400px;font-family:var(--serif);color:var(--text-2);background:color-mix(in srgb, var(--card) 80%, transparent);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);box-shadow:var(--shadow);z-index:3;border-radius:12px;margin:0;padding:10px 14px;font-size:.95rem;font-style:italic;line-height:1.5;position:absolute;bottom:12px;right:16px}.panel:not([hidden])~.principle-float{display:none}.noscript{position:absolute;top:80px;left:16px}.t-soil{fill:url(#soil)}.soil-top{stop-color:var(--soil);stop-opacity:1}.soil-bottom{stop-color:var(--soil);stop-opacity:0}.t-ground{fill:url(#ground-fade)}.ground-in{stop-color:var(--ground);stop-opacity:1}.ground-out{stop-color:var(--ground);stop-opacity:0}.t-side-label{fill:var(--text-3);letter-spacing:.04em;font-size:12px}.t-crown circle{fill:hsl(var(--gh,158) 42% var(--gl))}.t-crown .halo{opacity:.065}.t-crown .core{opacity:.11}:root[data-theme=dark] .t-crown .halo{opacity:.08}:root[data-theme=dark] .t-crown .core{opacity:.11}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .t-crown .halo{opacity:.08}:root:not([data-theme=light]) .t-crown .core{opacity:.11}}.bark-dark{stop-color:color-mix(in srgb, var(--bark) 74%, #000)}.bark-mid{stop-color:var(--bark)}.bark-light{stop-color:color-mix(in srgb, var(--bark) 80%, #fff)}.t-trunk{fill:url(#bark-shade);cursor:pointer}#tree.intro .t-trunk{transform-box:fill-box;transform-origin:50% 100%;animation:.6s cubic-bezier(.2,.7,.2,1) both trunk-grow}@keyframes trunk-grow{0%{transform:scaleY(.04)}to{transform:scaleY(1)}}.t-branch{stroke:none;cursor:pointer;transition:fill .2s}.t-branch.limb{cursor:default}.t-branch.l0{fill:var(--bark)}.t-branch.canopy.l1{fill:color-mix(in srgb, var(--bark) 55%, hsl(var(--gh,158) 48% var(--gl)))}.t-branch.canopy.l2{fill:color-mix(in srgb, var(--bark) 24%, hsl(var(--gh,158) 48% var(--gl)))}.t-branch.canopy.l3{fill:hsl(var(--gh,158) 48% var(--gl))}.t-branch.roots.l1{fill:color-mix(in srgb, var(--bark) 55%, var(--roots))}.t-branch.roots.l2{fill:color-mix(in srgb, var(--bark) 25%, var(--roots))}.t-branch.roots.l3{fill:var(--roots)}.t-branch.on,.t-trunk.on{fill:var(--accent)}.t-branch:not(.limb):hover{fill:color-mix(in srgb, var(--accent) 70%, var(--bark))}.t-group{letter-spacing:.16em;text-transform:uppercase;fill:var(--text-3);text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;font-size:10.5px;font-weight:650}.t-group.on{fill:var(--accent-ink)}.t-rel{fill:none;stroke:var(--accent);stroke-width:1.4px;stroke-dasharray:4 4;stroke-opacity:.8;pointer-events:none}.t-node{cursor:pointer;outline:none}.t-node .hit{fill:#0000}.t-node .mark{fill:var(--surface);stroke-width:1.8px}.t-node.canopy .mark{stroke:color-mix(in srgb, var(--bark) 30%, hsl(var(--gh,158) 48% var(--gl)))}.t-node.roots .mark{stroke:color-mix(in srgb, var(--bark) 30%, var(--roots))}.t-node.open .mark{fill:color-mix(in srgb, var(--bark) 30%, hsl(var(--gh,158) 48% var(--gl)))}.t-node.roots.open .mark{fill:color-mix(in srgb, var(--bark) 30%, var(--roots))}.t-node.leaf .mark{display:none}.t-node.roots.leaf .mark,.t-node.fork .mark{display:inline}.t-node.roots.leaf .mark{fill:var(--roots)}.t-node.center .mark{fill:var(--bark);stroke:none}.t-node .leaf{fill:hsl(var(--gh,158) 50% calc(var(--gl) + var(--lv,0) * 6%))}.t-node .rib{fill:none;stroke:hsl(var(--gh,158) 45% calc(var(--gl) + 26%));stroke-width:.8px;stroke-linecap:round;opacity:.75}.t-node .stalk{stroke:hsl(var(--gh,158) 48% var(--gl));stroke-width:1.3px;stroke-linecap:round}.t-node .petal{fill:var(--bloom);stroke:color-mix(in srgb, var(--bloom) 70%, #7a4300);stroke-width:.5px}.t-node .eye{fill:color-mix(in srgb, var(--bloom) 45%, #6b3a00)}.t-node .sway{transform-box:fill-box;transform-origin:0%;animation:sway var(--sd,6s) ease-in-out var(--sdl,0s) infinite alternate}@keyframes sway{0%{transform:rotate(-6deg)}to{transform:rotate(6deg)}}@media (prefers-reduced-motion:reduce){.t-node .sway,#tree.intro .t-trunk{animation:none}}.t-node .prong path,.t-node .prong circle{fill:var(--fork)}.t-node.fork .mark{stroke:var(--fork);fill:var(--fork)}.t-node.fork.open .mark{fill:var(--surface);stroke-width:2.2px}.t-node .ring{fill:none;stroke-width:1.2px;stroke-opacity:.6;stroke-dasharray:2 2.4}.t-node.canopy .ring{stroke:var(--canopy)}.t-node.roots .ring{stroke:var(--roots)}.t-node.sel .hit{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent);stroke-width:2px}.t-node:focus-visible .hit{stroke:var(--accent);stroke-width:2px}.t-node text{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;font-size:12.5px}.t-node.lv1 text{font-family:var(--serif);font-size:15.5px;font-weight:600}.t-node:not(.lv0):not(.lv1):not(.sel):not(.hov) text{fill:var(--text-2)}.t-node.center text{font-family:var(--serif);font-size:18px;font-weight:600}.t-node.dim text{fill:var(--text-2)}.t-node.sel text{fill:var(--accent-ink);font-weight:700}#tree.far .t-node.lv1 text{font-size:calc(15.5px * min(1.25, max(1, .8 / var(--k,1))))}#tree.far .t-node.center text{font-size:calc(15px * min(1.6, max(1, .8 / var(--k,1))))}#tree.far .t-group,#tree.far .t-node:not(.lv0):not(.lv1):not(.lbl):not(.hov):not(:focus-visible) text{display:none}#tree.far .t-node.lbl:not(.lv1):not(.center) text,#tree.far .t-node.hov:not(.lv1):not(.center) text{font-size:calc(12.5px * min(2, .8 / var(--k,1)))}.legend .lg-fork{flex:none;width:14px;height:14px}.legend .lg-fork path{fill:none;stroke:var(--fork);stroke-width:1.6px;stroke-linecap:round}.legend .lg-fork circle{fill:var(--fork)}.tb-buttons .btn.accent{border-color:color-mix(in srgb, var(--canopy) 45%, var(--border))}.tree-app.timing #btn-time{background:color-mix(in srgb, var(--canopy) 14%, var(--card));border-color:var(--canopy)}.time-watermark{text-align:left;font-family:var(--serif);letter-spacing:-.02em;color:var(--text);opacity:.07;pointer-events:none;z-index:1;font-variant-numeric:lining-nums;font-size:clamp(3rem,9vw,6.5rem);font-weight:600;position:absolute;top:118px;left:24px}.time-panel{z-index:7;background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);width:min(620px,100vw - 32px);box-shadow:var(--shadow-lg);border-radius:16px;padding:12px 14px 10px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.time-row{align-items:center;gap:12px;display:flex}.time-row input[type=range]{accent-color:var(--canopy);flex:1}.time-year{text-align:right;min-width:88px;font-family:var(--serif);font-variant-numeric:lining-nums tabular-nums;font-size:1.35rem;font-weight:600}.time-note{color:var(--text-3);margin:6px 2px 0;font-size:.78rem}.tree-app.timing .legend,.tree-app.timing .principle-float{display:none}.legend .lg-bloom{flex:none;width:14px;height:14px}.legend .lg-bloom ellipse{fill:var(--bloom)}.legend .lg-bloom circle{fill:color-mix(in srgb, var(--bloom) 45%, #6b3a00)}.legend .lg-grow{text-align:center;width:14px;color:var(--text-3);flex:none}.panel .fork-note{border-left:3px solid var(--fork);color:var(--text-2);background:var(--surface-2);border-radius:0 8px 8px 0;margin:0 0 8px;padding:6px 10px;font-size:.85rem}.panel ul.views{margin:0 0 4px;padding-left:18px;font-size:.88rem}.panel ul.views li::marker{color:var(--fork)}.panel{background:var(--card);border:1px solid var(--border);width:min(380px,100vw - 32px);box-shadow:var(--shadow-lg);z-index:6;border-radius:18px;padding:18px 20px;position:absolute;top:64px;bottom:64px;right:16px;overflow:auto}.panel h2{margin:10px 0 4px;padding-right:36px;font-size:1.55rem;line-height:1.15}.panel .meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.panel .close{position:absolute;top:10px;right:10px}.panel p.sum{margin:10px 0 14px}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:16px 0 6px;font-size:.8rem}.panel ul.links{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.panel ul.links button{appearance:none;font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-align:left;border-radius:999px;padding:4px 11px;font-size:.82rem;transition:border-color .15s}.panel ul.links button:hover{border-color:var(--accent)}.panel .go{margin-top:18px;font-weight:600;display:inline-block}.panel .cmp{color:var(--fork);margin:2px 0 4px;font-weight:600;display:inline-block}.t-rel.k-builds-on{stroke:var(--canopy);stroke-dasharray:none}.t-rel.k-opposes{stroke:var(--roots);stroke-dasharray:2 4;stroke-width:1.8px;stroke-linecap:round}.t-rel.k-replaces{stroke:var(--fork);stroke-dasharray:9 5}.t-rel.k-related{stroke-opacity:.5}.panel ul.links[class*=k-] button{border-left-width:3px}.panel ul.k-builds-on button{border-left-color:var(--canopy)}.panel ul.k-influenced-by button{border-left-color:var(--accent)}.panel ul.k-opposes button{border-left-color:var(--roots)}.panel ul.k-replaces button{border-left-color:var(--fork)}.poster-wrap{display:flex;position:relative}#btn-poster.busy{cursor:progress;opacity:.6}.poster-menu{z-index:20;background:var(--card);border:1px solid var(--border);width:240px;box-shadow:var(--shadow-lg,var(--shadow));border-radius:12px;padding:10px;position:absolute;top:calc(100% + 6px);right:0}.poster-menu p{color:var(--text-3);margin:2px 4px 8px;line-height:1.4}.poster-menu button{appearance:none;width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:.9rem;display:block}.poster-menu button:hover{background:var(--surface-2)}@media (width<=720px){.legend>span:nth-child(n+3){display:none}.panel{border-radius:16px 16px 0 0;width:100%;max-height:55dvh;inset:auto 0 0}.principle-float{display:none}.legend{bottom:8px;left:8px}}
