/* Анимации: reveal, flip, переходы видов. */
[data-reveal] { opacity: 0; transform: translateY(14px); }
[data-reveal].is-in { opacity: 1; transform: none; transition: opacity .5s ease, transform .5s ease; }

.is-flip { animation: flipCard .42s ease; }
@keyframes flipCard {
  0% { transform: rotateY(0); }
  50% { transform: rotateY(90deg) scale(.96); }
  100% { transform: rotateY(0); }
}

.chip.is-on { animation: chipPop .3s ease; }
@keyframes chipPop { 40% { transform: scale(1.06); } }

@keyframes heroIn { from { opacity: 0; transform: translateY(18px) rotate(3deg); } }

/* view transitions */
::view-transition-old(root), ::view-transition-new(root) { animation: vtFade .3s ease; }
@keyframes vtFade { from { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; }
  .is-flip, .chip.is-on { animation: none; }
}
