/* ============================================
   Quite Good - Animations
   Cloudflare-inspired scroll & entrance effects
   ============================================ */

/* AOS-style reveal (custom, no library needed) */
[data-aos] {
    opacity: 0; transition: all 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
[data-aos].aos-animate { opacity: 1; }
[data-aos="fade-up"] { transform: translateY(40px); }
[data-aos="fade-up"].aos-animate { transform: translateY(0); }
[data-aos="fade-down"] { transform: translateY(-40px); }
[data-aos="fade-down"].aos-animate { transform: translateY(0); }
[data-aos="fade-left"] { transform: translateX(40px); }
[data-aos="fade-left"].aos-animate { transform: translateX(0); }
[data-aos="fade-right"] { transform: translateX(-40px); }
[data-aos="fade-right"].aos-animate { transform: translateX(0); }
[data-aos="zoom-in"] { transform: scale(0.9); }
[data-aos="zoom-in"].aos-animate { transform: scale(1); }
[data-aos="flip-up"] { transform: perspective(600px) rotateX(10deg); }
[data-aos="flip-up"].aos-animate { transform: perspective(600px) rotateX(0); }

/* Stagger delay helper classes */
[data-aos-delay="100"] { transition-delay: 0.1s; }
[data-aos-delay="200"] { transition-delay: 0.2s; }
[data-aos-delay="300"] { transition-delay: 0.3s; }
[data-aos-delay="400"] { transition-delay: 0.4s; }
[data-aos-delay="500"] { transition-delay: 0.5s; }
[data-aos-delay="600"] { transition-delay: 0.6s; }

/* Hero text reveal */
.qg-hero-content .qg-hero-tag { animation: qgSlideUp 0.8s 0.3s both; }
.qg-hero-content .qg-hero-title { animation: qgSlideUp 0.8s 0.5s both; }
.qg-hero-content .qg-hero-desc { animation: qgSlideUp 0.8s 0.7s both; }
.qg-hero-content .qg-hero-btns { animation: qgSlideUp 0.8s 0.9s both; }

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

/* Gradient shimmer effect */
.qg-shimmer {
    background: linear-gradient(90deg, transparent 0%, rgba(240,125,26,0.1) 50%, transparent 100%);
    background-size: 200% 100%;
    animation: qgShimmer 3s ease-in-out infinite;
}
@keyframes qgShimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* Pulse for icons/badges */
.qg-pulse { animation: qgPulse 2s ease-in-out infinite; }
@keyframes qgPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

/* Subtle parallax background */
.qg-parallax { transition: transform 0.3s ease-out; will-change: transform; }

/* Card hover lift */
.qg-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.qg-lift:hover { transform: translateY(-8px); box-shadow: 0 20px 60px rgba(0,0,0,0.12); }

/* Text gradient animation */
.qg-text-gradient {
    background: linear-gradient(135deg, var(--qg-orange) 0%, #FF9A44 50%, var(--qg-orange) 100%);
    background-size: 200% auto;
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: qgTextGradient 4s linear infinite;
}
@keyframes qgTextGradient {
    to { background-position: 200% center; }
}

/* Border draw effect */
.qg-border-draw { position: relative; }
.qg-border-draw::after {
    content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px;
    background: var(--qg-orange); transition: width 0.6s ease;
}
.qg-border-draw:hover::after { width: 100%; }

/* Marquee for clients */
.qg-marquee { overflow: hidden; white-space: nowrap; }
.qg-marquee-inner {
    display: inline-flex; animation: qgMarquee 30s linear infinite;
}
@keyframes qgMarquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Typing cursor */
.qg-cursor::after {
    content: '|'; animation: qgBlink 1s step-end infinite; color: var(--qg-orange);
}
@keyframes qgBlink { 0%,100%{opacity:1} 50%{opacity:0} }
