/* Stable mature tree. Layout matrices never receive animations or transitions. */
.tree-frame{position:fixed;left:0;top:0;width:1000px;height:1250px;transform-origin:0 0;transition:none}
.memory-tree{position:absolute;inset:0;pointer-events:none;isolation:isolate}
.environment-hotspots{position:fixed!important;transition:none}
.memory-tree-art{display:block;width:100%;height:100%;overflow:visible}
.hotspots{position:absolute;inset:0;z-index:3;pointer-events:none}
.hotspot{position:absolute;transform:translate(-50%,-50%);width:var(--hotspot-size,44px);height:var(--hotspot-size,44px);padding:0;background:transparent;border:0;border-radius:50%;display:grid;place-items:center;color:#fff3da;pointer-events:auto}
.node-art{width:var(--art-size,24px);height:var(--art-size,24px);overflow:visible;filter:drop-shadow(0 1px 3px #251d1b)}
.fruit-stem{fill:none;stroke:#816947;stroke-width:3;stroke-linecap:round}.fruit-leaf{fill:#97a76b;stroke:#5d704f;stroke-width:1.3}
.fruit-body{fill:#b0c7a5;stroke:#dce2c4;stroke-width:1.5}.fruit-sheen{fill:none;stroke:#e6f0d7;stroke-width:4;stroke-linecap:round;opacity:.45}
.hotspot--ripe .fruit-body{fill:#f4ca79;stroke:#fff3c3}.hotspot--ripe .node-art{filter:drop-shadow(0 0 7px #ffd289) drop-shadow(0 2px 2px #47312a)}
.star-body{fill:#f5dda0;stroke:#fff4ce;stroke-width:1.2}.flower-body{fill:#e8b9ad;stroke:#f4d5c1;stroke-width:1.3}
.hotspot-glow{position:absolute;inset:7%;border-radius:50%;background:radial-gradient(circle,rgba(255,221,151,.12),transparent 70%);pointer-events:none}
.hotspot--ripe .hotspot-glow{box-shadow:0 0 16px rgba(255,215,135,.30)}
.hotspot:is(:hover,:focus-visible,.selected) .hotspot-glow{box-shadow:0 0 0 2px rgba(255,238,191,.55),0 0 18px rgba(255,221,151,.45)}
.hotspot-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid rgba(255,238,201,.3);border-radius:999px;background:rgba(24,35,53,.95);padding:7px 12px;pointer-events:none;color:#fff4de;font-size:10px;opacity:0;z-index:4}
.hotspot:is(:hover,:focus-visible,.selected) .hotspot-tooltip{opacity:1}
@media(prefers-reduced-motion:reduce){.memory-tree *,.hotspot *{animation:none!important;transition:none!important}}

/* Animate decorative artwork only; anchor/hit boxes and tree frame remain fixed. */
.hotspot--ripe .hotspot-glow{animation:fruit-light 6s var(--motion-phase) ease-in-out infinite}
.hotspot--unripe .node-art,.hotspot--flower .node-art{animation:quiet-sway 8s var(--motion-phase) ease-in-out infinite;transform-origin:50% 50%}
.hotspot--star .node-art{animation:star-light 9s var(--motion-phase) ease-in-out infinite}
@keyframes fruit-light{0%,100%{opacity:.55}50%{opacity:.85}}
@keyframes star-light{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes quiet-sway{0%,100%{transform:rotate(-.8deg)}50%{transform:rotate(.8deg)}}
@media(prefers-reduced-motion:reduce){.hotspot *{animation:none!important;transform:none!important}}

.fruit-bud{fill:#b0c7a5;opacity:0}.fruit-body,.fruit-leaf{transform-box:fill-box;transform-origin:50% 50%}
