/* ---- Hero background Ken Burns zoom ---- */
@keyframes kenburns {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.12);
    }
}

.kenburns {
    animation: kenburns 18s ease-out infinite alternate;
}

/* ---- Slow rotating ring behind hero text ---- */
@keyframes spin-slow {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

.spin-slow {
    animation: spin-slow 40s linear infinite;
}

/* ---- Gentle float for badge ---- */
@keyframes float-y {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-6px);
    }
}

.float-y {
    animation: float-y 3.5s ease-in-out infinite;
}

/* ---- Shimmer sweep on CTA button ---- */
.shimmer-btn {
    position: relative;
    overflow: hidden;
}

.shimmer-btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.35), transparent);
    transform: skewX(-20deg);
    transition: left 0.2s;
}

.shimmer-btn:hover::after {
    left: 125%;
    transition: left 0.7s ease;
}

/* ---- Pop-in for stats on view ---- */
@keyframes pop-in {
    0% {
        transform: scale(0.7);
        opacity: 0;
    }
    80% {
        transform: scale(1.06);
        opacity: 1;
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

[data-aos="pop-in"] {
    opacity: 0;
}

[data-aos="pop-in"].aos-animate {
    animation: pop-in 0.6s ease-out forwards;
}

/* ---- Our Story timeline ---- */
.timeline-line::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 15px;
    width: 2px;
    background: linear-gradient(180deg, #F3E5D2, #D9A968, #F3E5D2);
}

@media (min-width: 1024px) {
    .timeline-line::before {
        left: 50%;
        transform: translateX(-50%);
    }
}

/* ---- Handcraft process connector ---- */
.process-connector::after {
    content: '';
    position: absolute;
    top: 28px;
    left: calc(50% + 28px);
    width: calc(100% - 56px);
    height: 2px;
    background-image: repeating-linear-gradient(90deg, #A32A0F 0, #A32A0F 6px, transparent 6px, transparent 12px);
}

.process-step:last-child .process-connector::after {
    display: none;
}

/* ---- Video play button pulse ---- */
@keyframes pulse-ring {
    0% {
        box-shadow: 0 0 0 0 rgba(217, 27, 92, 0.45);
    }
    100% {
        box-shadow: 0 0 0 22px rgba(217, 27, 92, 0);
    }
}

.play-pulse {
    animation: pulse-ring 2s ease-out infinite;
}
