/* Porchbird v4 motion layer. Only active when <html class="pb-anim"> (set by an inline script), so no-JS visitors see everything. */
@keyframes pb-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes pb-fade{from{opacity:0}to{opacity:1}}
@keyframes pb-photo{from{opacity:0;transform:translateX(40px) scale(.96)}to{opacity:1;transform:none}}
@keyframes pb-card{from{opacity:0;transform:translateY(60px) rotate(-6deg)}to{opacity:1}}
@keyframes pb-pop{0%{opacity:0;transform:scale(.3) rotate(-40deg)}70%{opacity:1;transform:scale(1.08) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
@keyframes pb-hop{0%,100%{transform:translateY(0)}30%{transform:translateY(-7px) rotate(-6deg)}55%{transform:translateY(0)}70%{transform:translateY(-3px)}}
@keyframes pb-tick{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes pb-float{0%,100%{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-8px) rotate(var(--rot,0deg))}}
@keyframes pb-spin{to{transform:rotate(360deg)}}

.pb-anim .hero-copy .eyebrow{animation:pb-fade .6s .05s both}
.pb-anim .hero-copy h1 .pb-line{display:inline-block;animation:pb-rise .75s cubic-bezier(.2,.8,.2,1) both}
.pb-anim .hero-copy h1 .pb-line:nth-of-type(1){animation-delay:.12s}
.pb-anim .hero-copy h1 .pb-line:nth-of-type(2){animation-delay:.24s}
.pb-anim .hero-copy h1 .pb-line:nth-of-type(3){animation-delay:.42s}
.pb-anim .hero-description{animation:pb-rise .7s .6s both}
.pb-anim .hero-actions{animation:pb-rise .7s .72s both}
.pb-anim .hero-fineprint{animation:pb-fade .8s .9s both}
.pb-anim .hero-photo{animation:pb-photo .9s .25s cubic-bezier(.2,.8,.2,1) both}
.pb-anim .hero-site{animation:pb-card 1s .55s cubic-bezier(.2,.8,.2,1) both}
.pb-anim .hero-sticker{animation:pb-pop .7s 1.15s cubic-bezier(.3,1.4,.5,1) both}
.pb-anim .hero-sticker.pb-idle{animation:pb-float 4.5s ease-in-out infinite}
.pb-anim .promise-strip b{display:inline-block;animation:pb-tick .45s cubic-bezier(.3,1.6,.5,1) both}
.pb-anim .promise-strip span:nth-child(1) b{animation-delay:1.2s}
.pb-anim .promise-strip span:nth-child(2) b{animation-delay:1.35s}
.pb-anim .promise-strip span:nth-child(3) b{animation-delay:1.5s}

/* the sparrow in the header hops on load, and on hover */
.pb-anim .wordmark img{animation:pb-hop .9s .3s ease-out both;transform-origin:50% 90%}
.wordmark:hover img{animation:pb-hop .7s ease-out}

/* buttons: arrow nudge */
.button span[aria-hidden],.text-link span[aria-hidden]{display:inline-block;transition:transform .2s ease}
.button:hover span[aria-hidden]{transform:translate(3px,-3px)}

/* scroll reveal */
.pb-anim .pb-reveal{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.pb-anim .pb-reveal.pb-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .pb-anim *{animation:none!important;transition:none!important}
  .pb-anim .pb-reveal{opacity:1;transform:none}
}
.brand:hover img{animation:pb-hop .7s ease-out}
.pb-anim .hero-copy h1 .pb-line{color:inherit;font:inherit;letter-spacing:inherit}
