/* A finite opening sequence. Unenhanced and reduced-motion pages stay readable. */
.orchard-stage { overflow: clip; }
.orchard.is-active .orchard-copy { animation: none; }
.orchard .write-accessible { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.orchard .write-visual, .orchard h1 .write-visual,
.orchard .write-char, .orchard h1 .write-char { display: inline; margin: 0; color: inherit; white-space: inherit; }
.orchard .write-word, .orchard h1 .write-word { display: inline-block; margin: 0; white-space: nowrap; color: inherit; }
.home-sequence-running .write-char { animation: write-letter 1ms steps(1, end) both; animation-delay: var(--letter-delay); }
@keyframes write-letter { from { opacity: 0; } to { opacity: 1; } }
.hummingbird { position: absolute; z-index: 1; top: clamp(82px, 10.8svh, 114px); left: 6%; width: clamp(92px, 9vw, 152px); aspect-ratio: 1; pointer-events: none; transform-origin: 55% 45%; }
.hummingbird[hidden] { display: none; }
.hummingbird svg { display: block; width: 100%; height: 100%; overflow: visible; }
.hummingbird-wing { transform-box: view-box; transform-origin: 53.8% 42%; }
.home-sequence-running .hummingbird { animation: hummingbird-arrive 3200ms both; }
.home-sequence-running .hummingbird-wing-near { animation: hummingbird-flap-near 105ms ease-in-out 30; }
.home-sequence-running .hummingbird-wing-far { animation: hummingbird-flap-far 105ms ease-in-out 30; }
@keyframes hummingbird-arrive {
  0% { opacity: 0; transform: translate(-28vw, 64px) rotate(-15deg) scale(.8); }
  12% { opacity: 1; }
  45% { transform: translate(16px, -20px) rotate(7deg) scale(1); animation-timing-function: ease-in-out; }
  68% { transform: translate(-8px, 8px) rotate(-3deg); animation-timing-function: ease-in-out; }
  85% { transform: translate(3px, -4px) rotate(1deg); animation-timing-function: ease-out; }
  100% { opacity: 1; transform: translate(0, 0) rotate(0); }
}
@keyframes hummingbird-flap-near {
  0%, 100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-62deg) scaleY(.26); }
}
@keyframes hummingbird-flap-far {
  0%, 100% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-48deg) scaleY(.38); }
}
@media (max-width: 1000px) and (min-width: 701px) { .hummingbird { left: 2.5%; top: 80px; width: 90px; } }
@media (max-width: 700px) {
  .hummingbird { left: auto; right: 12px; top: 74px; width: 58px; }
  .home-sequence-running .hummingbird { animation-name: hummingbird-arrive-mobile; }
  @keyframes hummingbird-arrive-mobile {
    0% { opacity: 0; transform: translate(100px, -15px) rotate(10deg) scale(.8); }
    16% { opacity: 1; }
    52% { transform: translate(-7px, 7px) rotate(-5deg); animation-timing-function: ease-in-out; }
    78% { transform: translate(3px, -3px) rotate(2deg); animation-timing-function: ease-out; }
    100% { opacity: 1; transform: none; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-sequence-running .write-char, .home-sequence-running .hummingbird,
  .home-sequence-running .hummingbird-wing { animation: none !important; opacity: 1; transform: none; }
}
