/* ===============================================
   REVEAL ANIMATIONS
=============================================== */

.fade-in-up,
.fade-in-left,
.fade-in-right,
.stagger-item {
    opacity: 0;
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
}

.fade-in-up,
.stagger-item {
    transform: translateY(40px);
}

.fade-in-left {
    transform: translateX(-40px);
}

.fade-in-right {
    transform: translateX(40px);
}

/* ACTIVE */

.fade-in-up.visible,
.fade-in-left.visible,
.fade-in-right.visible,
.stagger-item.visible {
    opacity: 1;
    transform: translate(0,0);
}

/* ===============================================
   CLEAN ANIMATIONS – OPTIMALIZOVANÁ VERZE
   Odstraněny kolize s hlavním script.js
=============================================== */

/* === Reduced motion (Respekt k nastavení systému uživatele) === */
@media (prefers-reduced-motion: reduce) {
  .fade-in-up, .fade-in-left, .fade-in-right, .stagger-item,
  .float-animation, .pulse-animation, .glow-effect,
  .bounce-in, .slide-in-left, .slide-in-right,
  .hover-lift, .magnetic-btn, .ripple::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}


/* === Nekonečné animace (Looping) === */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
.float-animation { animation: float 3s ease-in-out infinite; }

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.85; }
}
.pulse-animation { animation: pulse 2s ease-in-out infinite; }

@keyframes glow {
  0%, 100% { box-shadow: 0 0 20px rgba(0, 212, 255, 0.3); }
  50% { box-shadow: 0 0 40px rgba(0, 212, 255, 0.55); }
}
.glow-effect { animation: glow 2.2s ease-in-out infinite; }

/* === Interakce (Hover & Click) === */
.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hover-lift:hover {
  transform: translateY(-8px);
}

.magnetic-btn {
  transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.magnetic-btn:hover {
  transform: scale(1.05);
}

/* === Jednorázové efekty === */
@keyframes bounceIn {
  0% { opacity: 0; transform: scale(0.3); }
  50% { transform: scale(1.05); }
  70% { transform: scale(0.92); }
  100% { opacity: 1; transform: scale(1); }
}
.bounce-in { animation: bounceIn 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }

/* === Ripple effect (pro tlačítka) === */
.ripple { position: relative; overflow: hidden; }
.ripple::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(0, 212, 255, 0.35);
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
}
.ripple:active::after {
  width: 260px;
  height: 260px;
}

/* === Utility === */
.counter { font-variant-numeric: tabular-nums; }

.parallax-layer {
  transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}