/* ===== PERFORMANCE OPTIMIZATIONS ===== */

/* Force hardware acceleration on all animated elements */
.btn,
.feature-card,
.service-preview-card,
.service-card,
.nav-link,
.hero-content,
.hero-visual,
.stat-card,
.timeline-item,
.value-card,
.mv-card,
.reason-card {
    will-change: transform;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    perspective: 1000px;
}

/* Optimize button transforms */
.btn:hover {
    transform: translate3d(0, -3px, 0) !important;
}

.btn:active {
    transform: translate3d(0, -1px, 0) !important;
}

/* Optimize card hover effects */
.feature-card:hover,
.service-preview-card:hover,
.service-card:hover {
    transform: translate3d(0, -10px, 0) scale(1.02) !important;
}

/* Optimize floating animations */
@keyframes float {

    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }

    50% {
        transform: translate3d(0, -20px, 0);
    }
}

@keyframes iconFloat {

    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }

    50% {
        transform: translate3d(0, -10px, 0);
    }
}

/* Optimize shimmer effect */
@keyframes shimmer {
    0% {
        transform: translate3d(-100%, 0, 0) rotate(45deg);
    }

    100% {
        transform: translate3d(100%, 0, 0) rotate(45deg);
    }
}

/* Optimize floating orbs */
@keyframes floatOrb {

    0%,
    100% {
        transform: translate3d(0, 0, 0) scale(1);
    }

    25% {
        transform: translate3d(50px, -50px, 0) scale(1.1);
    }

    50% {
        transform: translate3d(-30px, 30px, 0) scale(0.9);
    }

    75% {
        transform: translate3d(40px, 40px, 0) scale(1.05);
    }
}

/* Optimize icon rotations */
@keyframes iconRotate {
    from {
        transform: translate3d(0, 0, 0) rotate(0deg);
    }

    to {
        transform: translate3d(0, 0, 0) rotate(360deg);
    }
}

/* Optimize icon pulse */
@keyframes iconPulse {

    0%,
    100% {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: 1;
    }

    50% {
        transform: translate3d(0, 0, 0) scale(1.1);
        opacity: 0.8;
    }
}

/* Optimize fade animations */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translate3d(0, 20px, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 30px, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-30px, 0, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(30px, 0, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Optimize scale animations */
@keyframes zoomIn {
    from {
        opacity: 0;
        transform: translate3d(0, 0, 0) scale(0.9);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0) scale(1);
    }
}

/* Contain layout for better performance */
.container {
    contain: layout style;
}

section {
    contain: layout style paint;
}

/* Optimize SVG rendering */
svg {
    will-change: transform;
    transform: translate3d(0, 0, 0);
    shape-rendering: geometricPrecision;
}

/* Reduce paint areas */
.animated-background {
    contain: strict;
}

/* Optimize canvas rendering */
canvas {
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

/* Optimize scroll performance */
html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* GPU layer promotion for frequently animated elements */
.hero-visual,
.floating-server,
.cloud-animation,
.particle-canvas,
.binary-rain {
    will-change: transform, opacity;
    transform: translate3d(0, 0, 0);
}

/* Optimize text rendering */
body {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Optimize image rendering */
img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Force compositing for better performance */
.feature-card::before,
.service-card::before {
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

/* Optimize navbar transitions */
.navbar {
    will-change: transform, background-color;
    transform: translate3d(0, 0, 0);
}

/* Optimize footer wave animation */
.footer-wave {
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

/* Optimize stat counter animations */
.stat-number {
    will-change: contents;
    contain: layout style;
}

/* Optimize timeline animations */
.timeline-dot {
    will-change: transform, opacity;
    transform: translate3d(0, 0, 0);
}

/* Performance hints for browser */
* {
    box-sizing: border-box;
}

/* Optimize repaints */
.btn-glow,
.service-icon-wrapper,
.info-icon {
    will-change: transform, opacity;
    transform: translate3d(0, 0, 0);
}