/* Animação do puzzle Diárias (secção Contactos).
   Sem JavaScript, ou com "reduzir movimento" ativo, o logótipo aparece montado e parado. */
.puzzle-anim{position:relative;display:block;aspect-ratio:1300/866;overflow:hidden;overflow:clip;cursor:pointer;-webkit-tap-highlight-color:transparent}
.puzzle-anim .pz-grp{position:absolute;inset:0}
.puzzle-anim .pz-grp img{position:absolute;display:block;height:auto;max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;user-select:none;-webkit-user-drag:none}
.puzzle-anim .pz-g-red{transform-origin:33% 50%}
.puzzle-anim .pz-g-chk{transform-origin:62% 50%}
.puzzle-anim .pz-plate{transform-origin:50% 60%}
.puzzle-anim .pz-pin{transform-origin:50% 100%}
.puzzle-anim .pz-hat{transform-origin:45% 100%}

/* À espera de entrar no ecrã: peças afastadas e ícone escondido */
.puzzle-anim.pz-wait .pz-g-red{transform:translateX(-14%) rotate(-7deg);opacity:0}
.puzzle-anim.pz-wait .pz-g-chk{transform:translateX(13%) rotate(7deg);opacity:0}
.puzzle-anim.pz-wait .pz-plate,.puzzle-anim.pz-wait .pz-pin,.puzzle-anim.pz-wait .pz-hat{opacity:0}

/* Sequência (3 s): peças 0–1,1 s · prato 1,2 s · pin 1,55 s · chapéu 2,05 s */
.puzzle-anim.pz-play .pz-g-red{animation:pz-inL 1.1s cubic-bezier(.2,.75,.25,1) both}
.puzzle-anim.pz-play .pz-g-chk{animation:pz-inR 1.1s cubic-bezier(.2,.75,.25,1) both}
.puzzle-anim.pz-play .pz-plate{animation:pz-plate .5s cubic-bezier(.3,1.4,.5,1) 1.2s both}
.puzzle-anim.pz-play .pz-pin{animation:pz-pin .62s 1.55s both}
.puzzle-anim.pz-play .pz-hat{animation:pz-hat .8s cubic-bezier(.3,.7,.3,1) 2.05s both}

@keyframes pz-inL{
  0%{transform:translateX(-14%) rotate(-7deg);opacity:0}
  22%{opacity:1}
  68%{transform:translateX(.7%) rotate(0deg)}
  82%{transform:translateX(-.3%) rotate(0deg)}
  100%{transform:none;opacity:1}
}
@keyframes pz-inR{
  0%{transform:translateX(13%) rotate(7deg);opacity:0}
  22%{opacity:1}
  68%{transform:translateX(-.7%) rotate(0deg)}
  82%{transform:translateX(.3%) rotate(0deg)}
  100%{transform:none;opacity:1}
}
@keyframes pz-plate{
  0%{transform:scale(.15,.4);opacity:0}
  40%{opacity:1}
  100%{transform:none;opacity:1}
}
@keyframes pz-pin{
  0%{transform:translateY(-135%);opacity:0;animation-timing-function:cubic-bezier(.5,0,.9,.5)}
  25%{opacity:1}
  55%{transform:translateY(0) scale(1.1,.86);animation-timing-function:cubic-bezier(.2,.8,.4,1)}
  75%{transform:translateY(-12%) scale(.97,1.04);animation-timing-function:cubic-bezier(.5,0,.8,.5)}
  100%{transform:none;opacity:1}
}
@keyframes pz-hat{
  0%{transform:translateY(-110%) rotate(-22deg);opacity:0}
  30%{opacity:1}
  58%{transform:translateY(3%) rotate(5deg)}
  78%{transform:translateY(-2%) rotate(-3deg)}
  100%{transform:none;opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .puzzle-anim{cursor:default}
  .puzzle-anim .pz-grp,.puzzle-anim .pz-grp img{animation:none!important;transform:none!important;opacity:1!important}
}
