/* Source-sized decorative events. The Village root belongs inside its camera
   plane; the Grove root scales with the existing panorama. No screen overlay. */
.ambient-source-events-v129,.ambient-source-events-v129 *{pointer-events:none!important;user-select:none!important}
.ambient-source-events-v129{--ambient-unit:1px;position:absolute;inset:0;overflow:hidden;contain:layout paint;isolation:isolate;z-index:7}
#outside-world>.ambient-source-events-v129{--ambient-unit:calc(var(--world-w) / 1536);z-index:6}
.ambient-source-events-v129 [hidden]{display:none!important}
.ambient-event-v129{position:absolute;translate:-50% -50%;margin:0;padding:0;border:0;background:none;box-shadow:none}
.ambient-event-v129 svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none!important}
.ambient-apple-v129{width:var(--apple-size,calc(var(--ambient-unit)*22));aspect-ratio:60/65}
.ambient-apple-v129 .ambient-apple-art{position:relative;width:100%;height:100%;transform-origin:50% 85%;filter:drop-shadow(0 1px 1px #55322e44)}
.ambient-apple-v129 .ambient-apple-shadow{position:absolute;left:calc(50% + var(--apple-drop-x));top:calc(100% + var(--apple-drop-y) - 2px);translate:-50% 0;width:104%;height:13%;border-radius:50%;background:#5d46384a;filter:blur(1px);opacity:0}
.ambient-apple-v129.is-playing .ambient-apple-art{animation:cq-v129-apple-fall 5.2s cubic-bezier(.43,.08,.73,.58) both}
.ambient-apple-v129.is-playing .ambient-apple-shadow{animation:cq-v129-apple-shadow 5.2s ease-out both}
@keyframes cq-v129-apple-fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(-8deg)}6%,8%{opacity:1;transform:translate3d(0,0,0) rotate(-8deg)}42%{transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(22deg)}49%{transform:translate3d(var(--apple-drop-x),calc(var(--apple-drop-y) - var(--ambient-unit)*8),0) rotate(13deg)}56%{transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(18deg)}62%{transform:translate3d(var(--apple-drop-x),calc(var(--apple-drop-y) - var(--ambient-unit)*2),0) rotate(17deg)}69%,91%{opacity:1;transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(18deg)}100%{opacity:0;transform:translate3d(var(--apple-drop-x),var(--apple-drop-y),0) rotate(18deg)}}
@keyframes cq-v129-apple-shadow{0%,8%{opacity:0;scale:.3}42%,91%{opacity:.75;scale:1}49%{opacity:.45;scale:.78}100%{opacity:0;scale:1}}
.ambient-butterfly-v129{width:calc(var(--ambient-unit)*20);height:calc(var(--ambient-unit)*16);filter:drop-shadow(0 1px 1px #3f3a3a33)}
.ambient-butterfly-v129 svg{scale:var(--ambient-facing,1) 1}
.ambient-butterfly-v129 .butterfly-wing{transform-box:view-box;transform-origin:12px 9px}
.ambient-butterfly-v129.is-playing{animation:cq-v129-flight 5.8s ease-in-out both}
.ambient-butterfly-v129.is-playing .butterfly-wing{animation:cq-v129-wing .72s ease-in-out 8 alternate}
@keyframes cq-v129-wing{from{scale:1 1}to{scale:.62 1}}
.ambient-bug-v129{width:calc(var(--ambient-unit)*7);height:calc(var(--ambient-unit)*5);opacity:0;filter:drop-shadow(0 1px 1px #2a3b2944)}
.ambient-bug-v129.is-playing{animation:cq-v129-flight 4.6s ease-in-out both}
@keyframes cq-v129-flight{0%{opacity:0;transform:translate3d(0,calc(var(--ambient-unit)*6),0) rotate(-7deg)}13%{opacity:.9}29%{transform:translate3d(var(--fly-a-x),var(--fly-a-y),0) rotate(11deg)}54%{transform:translate3d(var(--fly-b-x),var(--fly-b-y),0) rotate(-6deg)}77%{opacity:.9;transform:translate3d(var(--fly-c-x),var(--fly-c-y),0) rotate(8deg)}100%{opacity:0;transform:translate3d(var(--fly-d-x),var(--fly-d-y),0) rotate(2deg)}}
.ambient-leaf-v129{width:calc(var(--ambient-unit)*14);height:calc(var(--ambient-unit)*21);filter:drop-shadow(0 1px 1px #27372a33)}
.ambient-leaf-v129.is-playing{animation:cq-v129-leaf 4.8s ease-in-out both}
@keyframes cq-v129-leaf{0%{opacity:0;transform:translate3d(0,0,0) rotate(-24deg)}13%{opacity:.88}34%{transform:translate3d(calc(var(--leaf-dx)*.55),calc(var(--leaf-dy)*.22),0) rotate(16deg)}65%{opacity:.88;transform:translate3d(calc(var(--leaf-dx)*.35),calc(var(--leaf-dy)*.65),0) rotate(-14deg)}100%{opacity:0;transform:translate3d(var(--leaf-dx),var(--leaf-dy),0) rotate(18deg)}}
.ambient-fireflies-v129{width:calc(var(--ambient-unit)*60);height:calc(var(--ambient-unit)*42)}
.ambient-fireflies-v129>i{position:absolute;width:calc(var(--ambient-unit)*3);height:calc(var(--ambient-unit)*3);border-radius:50%;background:#e6edb8;box-shadow:0 0 4px 1px #b5edaa68;opacity:0}
.ambient-fireflies-v129>i:first-child{left:10%;top:75%;--light-x:calc(var(--ambient-unit)*9);--light-y:calc(var(--ambient-unit)*-14)}
.ambient-fireflies-v129>i+ i{left:70%;top:35%;--light-x:calc(var(--ambient-unit)*-7);--light-y:calc(var(--ambient-unit)*-11)}
.ambient-fireflies-v129[data-density="1"]>i+ i{display:none}
.ambient-fireflies-v129.is-playing>i{animation:cq-v129-firefly 4.5s ease-in-out both}
@keyframes cq-v129-firefly{0%{opacity:0;transform:translate3d(0,0,0)}25%,72%{opacity:.7}100%{opacity:0;transform:translate3d(var(--light-x),var(--light-y),0)}}
#journey-app[data-motion="still"] .ambient-source-events-v129,#journey-app:not([data-view="scene"]) .ambient-source-events-v129{display:none!important}
@media(prefers-reduced-motion:reduce){.ambient-source-events-v129{display:none!important}.ambient-source-events-v129 *{animation:none!important}}
