/* A small reader rests on the right-hand root, independently of the canopy. */
#app .has-reading-companion { position:relative; isolation:isolate; }
#app .page-tree-orb .has-reading-companion { position:absolute; }
.reading-companion { position:absolute; z-index:4; right:14%; bottom:9%; width:43%; aspect-ratio:1; pointer-events:none; transform-origin:50% 91%; filter:drop-shadow(0 4px 2px #34412e50); animation:reader-breathe 4.8s ease-in-out infinite; }
.reader-tree-pedestal { position:absolute; inset:0; z-index:2; width:100%; height:100%; object-fit:contain; object-position:center bottom; transform:scale(1.12,1.3); transform-origin:50% 96%; mask-image:linear-gradient(to bottom,transparent 73%,#000 82%); -webkit-mask-image:linear-gradient(to bottom,transparent 73%,#000 82%); pointer-events:none; }
.reading-companion svg { display:block; width:100%; height:100%; overflow:visible; }
#app .page-tree-orb-art.has-reading-companion > .tree-image { transform-origin:50% 85%; animation:reader-canopy 7s ease-in-out infinite; }
@keyframes reader-breathe { 0%,100%{transform:translateY(0) rotate(-.4deg) scaleY(1)} 50%{transform:translateY(-1px) rotate(.4deg) scaleY(1.013)} }
@keyframes reader-canopy { 0%,100%{transform:rotate(-.3deg)} 50%{transform:rotate(.35deg)} }
@media(max-width:760px) { .reading-companion { width:47%; right:11%; bottom:9%; } }
@media(prefers-reduced-motion:reduce) { .reading-companion,#app .page-tree-orb-art.has-reading-companion > .tree-image { animation:none; } }
