@keyframes rise-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes breathe {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -9px; }
}
@keyframes turn { to { rotate: 360deg; } }
@keyframes drift { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: no-preference) {
  .hero-intro { animation: rise-in .8s both; }
  .day-scene { animation: rise-in .9s .12s both; }
  .scene-flower { animation: turn 70s linear infinite; }
  .journal-preview { animation: breathe 7s 1s ease-in-out infinite; }
  .habit-preview { animation: breathe 8s 2s ease-in-out infinite; }
  .ticker-track { animation: drift 44s linear infinite; }
  .ticker:hover .ticker-track { animation-play-state: paused; }
  .will-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s, transform .6s; }
  .will-reveal.is-visible { opacity: 1; transform: translateY(0); }
}
html[data-motion="paused"] *, html[data-motion="paused"] *::before, html[data-motion="paused"] *::after { animation-play-state: paused !important; transition: none !important; }
html[data-motion="paused"] .hero-intro, html[data-motion="paused"] .day-scene { animation: none; }
html[data-motion="paused"] .will-reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .will-reveal { opacity: 1; transform: none; }
}
