@keyframes heliora-enter {
  from { opacity: 0; transform: translate3d(0,18px,0); }
  to { opacity: 1; transform: translate3d(0,0,0); }
}
@keyframes heliora-float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes heliora-image {
  from { transform: scale(1.045); }
  to { transform: scale(1); }
}
@keyframes heliora-dialog {
  from { opacity: 0; transform: translateY(18px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes heliora-backdrop { from { background-color: transparent; } }
@media (prefers-reduced-motion: no-preference) {
  .motion-enter { animation: heliora-enter 650ms cubic-bezier(.2,.7,.2,1) both; animation-delay: var(--enter-delay,0ms); }
  .hero-float { animation: heliora-float 3.8s ease-in-out 1; }
  .auth-visual-image { animation: heliora-image 1.8s ease-out both; }
  dialog[open] { animation: heliora-dialog .28s cubic-bezier(.2,.7,.2,1) both; }
  dialog[open]::backdrop { animation: heliora-backdrop .28s ease-out; }
  .language-menu:not([hidden]), .notification-popover { animation: heliora-enter .2s ease-out both; }
  .project-card, .space-project-card, .space-stat, .transparency-grid > div { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
  .project-image img, .space-project-photo img { transition: transform .65s cubic-bezier(.2,.7,.2,1); }
  .button .icon, .space-link .icon, .text-link .icon, .guide-step > .icon { transition: transform .22s ease; }
  .button:hover .icon, .space-link:hover .icon, .text-link:hover .icon, .guide-step:hover > .icon { transform: translateX(4px); }
  .button:active, .guide-step:active { transform: translateY(1px) scale(.985); }
  .space-sidebar nav a { transition: color .2s, background .2s, transform .2s; }
  .space-sidebar nav a:hover { transform: translateX(3px); }
  .auth-password button, .bookmark-button, .notification-button { transition: background .2s, color .2s, transform .2s; }
  .bookmark-button:active { transform: scale(.9); }
  .space-toast { transition: opacity .25s ease, transform .25s ease; }
  @media (hover: hover) and (pointer: fine) {
    .project-card:hover, .space-project-card:hover { transform: translateY(-5px); box-shadow: 0 16px 32px #18335a10; border-color: #becfea; }
    .space-stat:hover { transform: translateY(-3px); box-shadow: 0 10px 24px #18335a0c; }
    .project-image:hover img { transform: scale(1.045); }
  }
}
