/* 動畫：只動 transform / opacity */
@keyframes sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes fall{
  0%{transform:translate(0,-20px) rotate(0);opacity:0}
  10%{opacity:1}
  100%{transform:translate(-40px,260px) rotate(320deg);opacity:0}
}
@keyframes drift{0%,100%{transform:translateX(0)}50%{transform:translateX(14px)}}
@keyframes fly{0%{transform:translateX(-30px)}100%{transform:translateX(30px)}}
@keyframes boing{
  0%{transform:scale(.92) translateY(12px);opacity:0}
  55%{transform:scale(1.03) translateY(-4px);opacity:1}
  75%{transform:scale(.99) translateY(1px)}
  100%{transform:none;opacity:1}
}
@keyframes pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}

.a-sway{transform-box:fill-box;transform-origin:50% 100%;animation:sway 4s ease-in-out infinite}
.a-bob{transform-box:fill-box;animation:bob 3.2s ease-in-out infinite}
.a-drift{transform-box:fill-box;animation:drift 9s ease-in-out infinite}
.a-fly{transform-box:fill-box;animation:fly 6s ease-in-out infinite alternate}
.a-fall{transform-box:fill-box;animation:fall 7s linear infinite}
.a-fall.d2{animation-delay:-2.3s;animation-duration:8s}
.a-fall.d3{animation-delay:-4.6s;animation-duration:9s}
.a-fall.d4{animation-delay:-1.2s;animation-duration:7.5s}

.boing{animation:boing .55s cubic-bezier(.3,1.4,.5,1) both}
.boing-stagger > *{animation:boing .5s cubic-bezier(.3,1.4,.5,1) both}
.boing-stagger > *:nth-child(2){animation-delay:.04s}
.boing-stagger > *:nth-child(3){animation-delay:.08s}
.boing-stagger > *:nth-child(4){animation-delay:.12s}
.boing-stagger > *:nth-child(5){animation-delay:.16s}
.boing-stagger > *:nth-child(n+6){animation-delay:.2s}
.day-pill[aria-selected="true"]{animation:pop .35s ease-out}
.sheet:not([hidden]){animation:sheetUp .28s cubic-bezier(.2,.9,.3,1)}
.sheet-backdrop:not([hidden]){animation:fade .2s}
.tab:not([hidden]){animation:fade .25s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

