.bird-meadow { position:relative; height:114px; margin-top:12px; border-bottom:1px solid #b6cdb0; }
.strolling-bird { position:absolute; left:calc(12% - 18px); bottom:-17px; width:96px; height:96px; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; animation:bird-stroll 48s linear infinite,animal-turn 24s linear -1.2s infinite; touch-action:manipulation; }
.bird-facing { display:block; width:100%; height:100%;  }
.bird-body { position:relative; display:block; width:100%; height:100%; animation:bird-step .8s ease-in-out infinite; }
.bird-nibble { position:relative; display:block; width:100%; height:100%; transform-origin:50% 80%; animation:bird-nibble 48s linear infinite; }
.bird-body img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; pointer-events:none; user-select:none; }
.bird-normal { animation:bird-meal-normal 48s step-end infinite; }
.bird-joy { opacity:0; animation:bird-meal-joy 48s step-end infinite; }
.bird-heart { position:absolute; top:-28px; left:calc(50% - 12px); width:24px; height:24px; line-height:1; text-align:center; font-size:24px; color:#b97764; opacity:0; pointer-events:none; }
.is-happy .strolling-bird,.is-happy .bird-facing,.is-happy .bird-nibble,.is-happy .meadow-sprout,.is-happy .bird-normal,.is-happy .bird-joy { animation-play-state:paused; }
.is-happy .bird-nibble { transform:none !important; }
.is-happy .bird-normal { opacity:0 !important; }
.is-happy .bird-joy { opacity:1 !important; }
.is-happy .bird-body { animation:bird-greeting .7s ease-in-out 2; }
.is-happy .bird-heart { opacity:1; }
.meadow-sprout { position:absolute; bottom:0; width:2px; height:16px; background:#9cbf90; transform-origin:center bottom; animation:sprout-life 48s linear infinite; }
.sprout-right { left:88%; }
.sprout-left { left:12%; animation-delay:-24s; }
.meadow-sprout::before,.meadow-sprout::after { content:''; position:absolute; top:0; width:12px; height:6px; background:#b0cda4; border-radius:100% 0; }
.meadow-sprout::before { right:1px; transform:rotate(35deg); }
.meadow-sprout::after { left:2px; top:-3px; transform:rotate(-25deg); }
.strolling-bird:focus-visible,.release-link:focus-visible { outline:3px solid #087848; outline-offset:4px; }
@keyframes bird-stroll { 0%,100% { left:calc(12% - 18px); } 35%,50% { left:calc(88% - 78px); } 85% { left:calc(12% - 18px); } }
@keyframes bird-nibble {
  0%,35%,37%,39%,41%,43%,45%,50%,85%,87%,89%,91%,93%,95%,100% { transform:translate(0,0) rotate(0); }
  36%,38%,40%,86%,88%,90% { transform:translate(8px,3px) rotate(28deg); }
  42%,92% { transform:translateY(-5px) rotate(-2deg); }
  44%,94% { transform:translateY(-3px) rotate(2deg); }
}
@keyframes bird-meal-normal { 0%,46%,96%,100% { opacity:1; } 41%,91% { opacity:0; } }
@keyframes bird-meal-joy { 0%,46%,96%,100% { opacity:0; } 41%,91% { opacity:1; } }
@keyframes sprout-life {
  0%,38%,100% { opacity:1; transform:rotate(12deg) scale(1); }
  41%,98% { opacity:0; transform:rotate(12deg) scale(0); }
}
@keyframes bird-step { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-.7px) rotate(.65deg); } 50% { transform:translateY(0) rotate(0); } 75% { transform:translateY(-.7px) rotate(-.65deg); } }
@keyframes bird-greeting { 0%,100% { transform:translateY(0) rotate(0); } 45% { transform:translateY(-8px) rotate(-3deg); } }
/* After the meal settles, pause every meadow clock until the new animal is opaque. */
@keyframes animal-turn { from { --footer-animal-turn:0; } to { --footer-animal-turn:1; } }
.animal-portrait{position:absolute;inset:0;display:block;width:100%;height:100%}
.is-changing-animal .strolling-bird,.is-changing-animal .bird-body,.is-changing-animal .bird-nibble,.is-changing-animal .meadow-sprout,.is-changing-animal .bird-normal,.is-changing-animal .bird-joy{animation-play-state:paused!important}

.is-changing-animal .strolling-bird{left:var(--animal-stop)!important}

@media(prefers-reduced-motion:reduce){.strolling-bird{left:calc(50% - 48px)}.sprout-left{display:none}}
