/* ===================================================================
   GLOBAL TOP LOGISTICS — ANIMATIONS (Theme B)
=================================================================== */
.page-curtain { position:fixed; inset:0; background:var(--primary3); z-index:99999; pointer-events:none; transform:translateY(0); transition:transform 0.75s cubic-bezier(0.77,0,0.18,1); }
.page-curtain.lift { transform:translateY(-100%); }

@keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.ov-badge { animation:floatY 4s ease-in-out infinite; }

@keyframes dotPulse { 0%,100%{opacity:1} 50%{opacity:0.25} }
.eb-dot { animation:dotPulse 2s ease-in-out infinite; }

@keyframes scrollLine { 0%,100%{transform:scaleY(1);opacity:1} 50%{transform:scaleY(0.4);opacity:0.3} }
.scroll-line { animation:scrollLine 2s ease-in-out infinite; }

@keyframes tickerScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.ticker-track { animation:tickerScroll 28s linear infinite; }

.tl-item { opacity:0; transform:translateX(-32px); transition:opacity .6s ease, transform .6s cubic-bezier(0.34,1.1,0.64,1); }
.tl-item.visible { opacity:1; transform:none; }

.contact-card { opacity:0; transform:translateX(-20px); transition:opacity .5s ease, transform .5s cubic-bezier(0.34,1.15,0.64,1), background .3s, border-color .3s; }
.contact-card.visible { opacity:1; transform:translateX(0); }
.contact-card:nth-child(2){transition-delay:.08s} .contact-card:nth-child(3){transition-delay:.16s} .contact-card:nth-child(4){transition-delay:.24s} .contact-card:nth-child(5){transition-delay:.32s}

.page-stat-strip { opacity:0; transform:translateY(-14px); transition:opacity .5s ease .3s, transform .5s cubic-bezier(0.34,1.2,0.64,1) .3s; }
.page-stat-strip.visible { opacity:1; transform:none; }

.svc-card:hover, .cap-card:hover, .diff-card:hover, .testi-card:hover { transform-style:preserve-3d; }

@media(prefers-reduced-motion:reduce){ *, .page-curtain, .ov-badge, .eb-dot, .scroll-line, .ticker-track { animation:none !important; transition-duration:.01ms !important; } }