/* Anchor desktop foliage to the scene, with the source edges outside its frame. */
.scene-edge-leaf{display:none;pointer-events:none}
@media(min-width:761px){
 .hero-visual .foreground-leaf,.ritual-scene .ritual-leaf{display:none}
 .scene-edge-leaf{
  display:block;
  position:absolute;
  height:calc(100% + 200px);
  width:auto;
  max-width:none;
  bottom:-100px;
  object-fit:contain;
  transform-origin:100% 100%;
  animation:scene-foliage-breeze 12s ease-in-out infinite;
 }
 .hero{z-index:2}
 .hero-edge-leaf{
  right:clamp(-420px,-24vw,-220px);
  z-index:1;
  opacity:.66;
  filter:blur(1.1px) drop-shadow(-10px 12px 14px #17261d33);
 }
 .essence-sticky{isolation:isolate}
 .ritual-scene{z-index:2}
 .essence-edge-leaf{
  right:clamp(-280px,-17vw,-155px);
  z-index:1;
  opacity:.68;
  filter:drop-shadow(-9px 12px 12px #4c593d20);
  animation-duration:14s;
  animation-delay:-4s;
 }
}
@keyframes scene-foliage-breeze{
 0%,100%{rotate:-.8deg;translate:0 0}
 50%{rotate:.8deg;translate:-3px 2px}
}
/* On mobile the branch enters from the viewport edge. Its trimmed source edges
   stay outside the scene throughout the breeze, including narrow iPhones. */
@media(max-width:760px){
 .ritual-scene .ritual-leaf{
  left:calc(50% + 50vw);
  right:auto;
  top:-12%;
  bottom:auto;
  width:min(84vw,540px);
  height:auto;
  max-width:none;
  transform:translateX(-50%);
  transform-origin:50% 100%;
  animation:scene-foliage-breeze 14s -4s ease-in-out infinite;
 }
}
@media(prefers-reduced-motion:reduce){.scene-edge-leaf{animation:none}}
