@keyframes pulse-logo {
    0% { transform: scale(0.95); opacity: 0.7; }
    100% { transform: scale(1.05); opacity: 1; }
}
@keyframes spin {
    to { transform: rotate(360deg); }
}

@keyframes float {
    0% { transform: translateY(0px) rotate(var(--rot-start)); }
    50% { transform: translateY(-20px) rotate(var(--rot-end)); }
    100% { transform: translateY(0px) rotate(var(--rot-start)); }
}

@keyframes explode-tl-out {
    0% { transform: translate(0, 0) rotate(35deg); opacity: 1; }
    100% { transform: translate(-120px, -80px) rotate(300deg); opacity: 0; }
}
@keyframes explode-bl-out {
    0% { transform: translate(0, 0) rotate(-10deg); opacity: 1; }
    100% { transform: translate(-100px, 120px) rotate(-200deg); opacity: 0; }
}
@keyframes explode-tr-out {
    0% { transform: translate(0, 0) rotate(20deg); opacity: 1; }
    100% { transform: translate(150px, -120px) rotate(400deg); opacity: 0; }
}
@keyframes explode-mr-out {
    0% { transform: translate(0, 0) rotate(-45deg); opacity: 1; }
    100% { transform: translate(140px, 50px) rotate(-350deg); opacity: 0; }
}
@keyframes explode-tl-in {
    0% { transform: translate(-120px, -80px) rotate(300deg); opacity: 0; }
    100% { transform: translate(0, 0) rotate(35deg); opacity: 1; }
}
@keyframes explode-bl-in {
    0% { transform: translate(-100px, 120px) rotate(-200deg); opacity: 0; }
    100% { transform: translate(0, 0) rotate(-10deg); opacity: 1; }
}
@keyframes explode-tr-in {
    0% { transform: translate(150px, -120px) rotate(400deg); opacity: 0; }
    100% { transform: translate(0, 0) rotate(20deg); opacity: 1; }
}
@keyframes explode-mr-in {
    0% { transform: translate(140px, 50px) rotate(-350deg); opacity: 0; }
    100% { transform: translate(0, 0) rotate(-45deg); opacity: 1; }
}

@keyframes wave-move {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@keyframes float-screw {
    0% { transform: translateY(0px) rotate(-25deg); }
    50% { transform: translateY(-15px) rotate(-20deg); }
    100% { transform: translateY(0px) rotate(-25deg); }
}

@keyframes float-organic {
    0%, 100% { transform: translateY(0px) rotate(15deg); }
    50% { transform: translateY(-20px) rotate(20deg); }
}

@keyframes skeleton-loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@keyframes scroll-wheel {
    0% { top: 6px; opacity: 1; }
    100% { top: 22px; opacity: 0; }
}

@keyframes drillDown {
    0% { top: -200px; transform: rotate(90deg) scale(1.1); opacity: 0; }
    20% { opacity: 1; }
    60% { top: 40px; transform: rotate(90deg) scale(1); }
    75% { top: 20px; }
    90% { top: 45px; }
    100% { top: 40px; transform: rotate(90deg) scale(1); opacity: 1; }
}
@keyframes expandLine { 
    to { width: 60px; } 
}

@keyframes spax-pulse-white {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 30px rgba(255, 255, 255, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
