/* ============================================
   3D ANIMATIONS, INTERACTIONS & TRANSITIONS
   ============================================ */

/* 3D Perspective Container */
.perspective-container {
    perspective: 1200px;
    transform-style: preserve-3d;
}

/* Staggered card reveals */
.services-grid .service-card-v2:nth-child(1) {
    transition-delay: 0s;
}


/* ===== AR SCAN ANIMATIONS ===== */
@keyframes scanLine {
    0% { top:0; opacity:0; }
    10% { opacity:1; }
    90% { opacity:1; }
    100% { top:100%; opacity:0; }
}

@keyframes scanPulse {
    0%, 100% { border-color:rgba(0,229,255,0.3); box-shadow:0 0 15px rgba(0,229,255,0.05); }
    50% { border-color:rgba(0,229,255,0.7); box-shadow:0 0 30px rgba(0,229,255,0.15); }
}

@keyframes labelFadeIn {
    0% { opacity:0; transform:translateX(-10px); }
    100% { opacity:1; transform:translateX(0); }
}

@keyframes scoreRingPulse {
    0%, 100% { transform:scale(1); box-shadow:0 0 10px rgba(163,247,95,0.1); }
    50% { transform:scale(1.08); box-shadow:0 0 25px rgba(163,247,95,0.25); }
}

@keyframes dotBlink {
    0%, 100% { opacity:0.3; }
    50% { opacity:1; }
}

/* Face outline glow pulse */
.face-outline, [style*="border-radius:50% 50% 45% 45%"] {
    animation: scanPulse 3s ease-in-out infinite !important;
}

/* Body wireframe glow */
.body-wireframe div, [style*="border:2px solid rgba(0,229,255"] {
    animation: scanPulse 4s ease-in-out infinite;
}


.services-grid .service-card-v2:nth-child(2) {
    transition-delay: 0.15s;
}

.services-grid .service-card-v2:nth-child(3) {
    transition-delay: 0.3s;
}

.services-grid .service-card-v2:nth-child(4) {
    transition-delay: 0.45s;
}

.services-grid .service-card-v2:nth-child(5) {
    transition-delay: 0.6s;
}

.services-grid .service-card-v2:nth-child(6) {
    transition-delay: 0.75s;
}

/* Glowing border on cards */
.service-card-v2::before {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    z-index: 0;
    background: linear-gradient(135deg, rgba(255, 45, 135, 0), rgba(177, 74, 237, 0), rgba(0, 229, 255, 0));
    transition: background 0.6s;
    padding: 1px;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}

.service-card-v2:hover::before {
    background: linear-gradient(135deg, #ff2d87, #b14aed, #00e5ff);
}

/* Animated counter numbers */
@keyframes countUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Floating animation for hero elements */
@keyframes heroFloat {

    0%,
    100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-15px);
    }
}

.hero-eyebrow {
    animation: heroFloat 4s ease-in-out infinite;
}

/* Glow pulse on buttons */
@keyframes glowPulse {

    0%,
    100% {
        box-shadow: 0 0 20px rgba(255, 45, 135, 0.2), 0 0 60px rgba(177, 74, 237, 0.1);
    }

    50% {
        box-shadow: 0 0 40px rgba(255, 45, 135, 0.4), 0 0 80px rgba(177, 74, 237, 0.2);
    }
}

/* Parallax-style section separators */
.section-separator {
    height: 200px;
    background: linear-gradient(180deg, transparent, rgba(177, 74, 237, 0.05), transparent);
    position: relative;
}

.section-separator::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 200px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 45, 135, 0.5), transparent);
}

/* Card inner glow on hover */
.service-card-v2:hover .card-inner h3 {
    text-shadow: 0 0 30px currentColor;
}

/* Spinning border for featured elements */
@keyframes spinBorder {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Mouse-following glow (applied via JS) */
.card-glow {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    z-index: 0;
    opacity: 0;
    transition: opacity 0.4s;
    pointer-events: none;
}

.service-card-v2:hover .card-glow {
    opacity: 1;
}

/* Smooth scroll */
html {
    scroll-behavior: smooth;
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #08070e;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(#ff2d87, #b14aed, #00e5ff);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--pink);
}

/* Selection */
::selection {
    background: rgba(255, 45, 135, 0.25);
    color: white;
}

/* MOBILE */
@media (max-width:768px) {
    h1 {
        font-size: 2.2rem !important;
        line-height: 1.1 !important;
    }

    h2 {
        font-size: 1.7rem !important;
        line-height: 1.2 !important;
    }

    h3 {
        font-size: 1.2rem !important;
    }

    p {
        font-size: 0.95rem !important;
    }

    section {
        padding: 3rem 1.2rem !important;
    }

    .container {
        padding: 0 1rem !important;
    }

    .services-grid,
    .pricing-grid,
    .testimonials-grid,
    div[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
        gap: 1.2rem !important;
    }

    .service-card-v2 {
        min-height: 280px !important;
    }

    .stats-bar,
    .community-tags {
        flex-direction: column !important;
        align-items: center !important;
    }

    img:not(.vyve-logo img) {
        max-width: 100% !important;
    }

    .vyve-logo img {
        height: 80px !important;
        max-height: none !important;
        max-width: none !important;
    }
}

@media (max-width:1024px) and (min-width:769px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    h1 {
        font-size: 3rem !important;
    }
}