/* ============================================================
   5euro.eu — Animations  |  EU Gold + Blue theme
   ============================================================ */

@keyframes float-y { 0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)} }
@keyframes shimmer  { 0%{background-position:-200% center}100%{background-position:200% center} }
@keyframes bounce-in { 0%{transform:scale(0) rotate(-15deg);opacity:0}60%{transform:scale(1.15) rotate(5deg);opacity:1}100%{transform:scale(1) rotate(0deg);opacity:1} }
@keyframes scroll-slide { 0%{left:-100%}100%{left:100%} }
@keyframes ripple-expand { to{transform:scale(4);opacity:0} }
@keyframes spin-slow { from{transform:rotate(0deg)}to{transform:rotate(360deg)} }
@keyframes star-pulse { 0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)} }

.float-1 { animation: float-y 4s ease-in-out infinite; }
.float-2 { animation: float-y 5s ease-in-out 0.5s infinite; }
.float-3 { animation: float-y 4.5s ease-in-out 1s infinite; }

.shimmer-text {
  background: linear-gradient(90deg, var(--eu-blue) 0%, var(--eu-gold) 50%, var(--eu-blue) 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 4s linear infinite;
}

/* Magnetic ripple */
.btn-magnetic { position:relative; overflow:hidden; }
.btn-magnetic .ripple { position:absolute;border-radius:50%;background:rgba(255,255,255,0.25);transform:scale(0);animation:ripple-expand .6s ease-out forwards;pointer-events:none; }

/* Reveal animations */
.reveal-up    { opacity:0;transform:translateY(40px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out); }
.reveal-left  { opacity:0;transform:translateX(-40px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out); }
.reveal-right { opacity:0;transform:translateX(40px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out); }
.reveal-scale { opacity:0;transform:scale(0.9);transition:opacity .6s var(--ease-out),transform .6s var(--ease-spring); }
.reveal-up.visible,.reveal-left.visible,.reveal-right.visible { opacity:1;transform:none; }
.reveal-scale.visible { opacity:1;transform:scale(1); }

/* Stagger children */
.stagger-children > * { opacity:0;transform:translateY(30px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out); }
.stagger-children.visible > *:nth-child(1) { opacity:1;transform:none;transition-delay:0ms; }
.stagger-children.visible > *:nth-child(2) { opacity:1;transform:none;transition-delay:100ms; }
.stagger-children.visible > *:nth-child(3) { opacity:1;transform:none;transition-delay:200ms; }
.stagger-children.visible > *:nth-child(4) { opacity:1;transform:none;transition-delay:300ms; }
.stagger-children.visible > *:nth-child(5) { opacity:1;transform:none;transition-delay:400ms; }
.stagger-children.visible > *:nth-child(6) { opacity:1;transform:none;transition-delay:500ms; }

/* Feature grid stagger */
.features-stagger > * { opacity:0;transform:translateY(20px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out); }
.features-stagger.visible > *:nth-child(1) { opacity:1;transform:none;transition-delay:0ms; }
.features-stagger.visible > *:nth-child(2) { opacity:1;transform:none;transition-delay:60ms; }
.features-stagger.visible > *:nth-child(3) { opacity:1;transform:none;transition-delay:120ms; }
.features-stagger.visible > *:nth-child(4) { opacity:1;transform:none;transition-delay:180ms; }
.features-stagger.visible > *:nth-child(5) { opacity:1;transform:none;transition-delay:240ms; }
.features-stagger.visible > *:nth-child(6) { opacity:1;transform:none;transition-delay:300ms; }
.features-stagger.visible > *:nth-child(7) { opacity:1;transform:none;transition-delay:360ms; }
.features-stagger.visible > *:nth-child(8) { opacity:1;transform:none;transition-delay:420ms; }
.features-stagger.visible > *:nth-child(9) { opacity:1;transform:none;transition-delay:480ms; }
.features-stagger.visible > *:nth-child(10) { opacity:1;transform:none;transition-delay:540ms; }
.features-stagger.visible > *:nth-child(11) { opacity:1;transform:none;transition-delay:600ms; }
.features-stagger.visible > *:nth-child(12) { opacity:1;transform:none;transition-delay:660ms; }

/* Scroll dot */
.scroll-dot { width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.5);animation:pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}
