/* Content always visible — scroll adds fade-up when motion enabled */
.reveal {
  opacity: 1;
  transform: none;
}
html.motion-js .reveal.is-animating {
  opacity: 1;
  transform: translateY(16px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
html.motion-js .reveal.is-animating.visible {
  opacity: 1;
  transform: none;
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }

@keyframes spin {
  to { transform: rotate(360deg); }
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
@keyframes pulse-glow {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes pinPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.75; }
}
@keyframes pathDash {
  to { stroke-dashoffset: -20; }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

.hero-hostiko .badge { animation: pulse-glow 3s ease-in-out infinite; }
.map-plane { animation: float 4s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .reveal, html.motion-js .reveal.is-animating { opacity: 1; transform: none; transition: none; }
  .map-pin, .map-path, .map-plane, .hero-hostiko .badge { animation: none; }
  .testimonials-track { transition: none; }
  .spinner, .skeleton, .cart-count.is-loading { animation: none; }
  .skeleton { background: rgba(10,37,64,0.08); }
}
