/* Short, one-time movement. No autoplay, looping effects or animated balances. */
@keyframes fashion-arrive {
  from {opacity:0;transform:translateY(14px)}
  to {opacity:1;transform:translateY(0)}
}
@keyframes fashion-visual-arrive {
  from {opacity:0;transform:translateY(12px) scale(.985)}
  to {opacity:1;transform:translateY(0) scale(1)}
}
@media (prefers-reduced-motion:no-preference) {
  .hero-copy,.page-hero>div,.text-hero,.contact-hero>div,.auth-card {
    animation:fashion-arrive 520ms cubic-bezier(.2,.7,.2,1) both;
  }
  .hero-visual,.page-hero>figure {
    animation:fashion-visual-arrive 650ms cubic-bezier(.2,.7,.2,1) 90ms both;
  }
  .page-head {animation:fashion-arrive 320ms ease-out both}
  .stat {animation:fashion-arrive 380ms ease-out both}
  .stat:nth-child(2) {animation-delay:40ms}
  .stat:nth-child(3) {animation-delay:80ms}
  .stat:nth-child(4) {animation-delay:120ms}
  .motion-enter {animation:fashion-arrive 520ms cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms) both}
  dialog[open] {animation:fashion-arrive 180ms ease-out both}
  .public-links.open {animation:fashion-arrive 180ms ease-out both}
  .btn .ico,.text-link .ico,.footer-invitation .ico {transition:transform 180ms ease-out}
  .btn:hover .ico,.text-link:hover .ico,.footer-invitation:hover .ico {transform:translateX(3px)}
  .standee-card,.bundle-card,.purchase-path>a,.support-links>a {
    transition:box-shadow 200ms ease-out,border-color 200ms ease-out;
  }
  .standee-card:hover,.bundle-card:hover,.purchase-path>a:hover,.support-links>a:hover {
    border-color:var(--accent);box-shadow:0 12px 30px #1519230b;
  }
  .standee-card-image>img {transition:transform 350ms ease-out}
  .standee-card:hover .standee-card-image>img {transform:scale(1.025)}
}
@media (prefers-reduced-motion:reduce) {
  .motion-enter {opacity:1;transform:none}
}
