.hero {
    position: relative;
    overflow: hidden;
}

.hero-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: -10;
    overflow: hidden;
}

.img-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    perspective: 1000px;
    will-change: transform;
}

.img-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform-origin: center center;
    will-change: transform, opacity;
    transition: transform 0.05s ease-out, opacity 0.1s ease-out;
}

.hero-bg::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        to bottom,
        rgba(10, 10, 10, 0.3) 0%,
        rgba(10, 10, 10, 0.6) 50%,
        rgba(10, 10, 10, 0.8) 100%
    );
    z-index: 1;
    pointer-events: none;
}

.gradient-sphere {
    position: absolute;
    z-index: 2;
}

.hero-container {
    position: relative;
    z-index: 3;
}

.scroll-indicator {
    position: absolute;
    z-index: 3;
}

@media (max-width: 768px) {
    .img-bg {
        perspective: 800px;
    }
    
    .img-bg img {
        transition: transform 0.1s ease-out;
    }
}

@media (prefers-reduced-motion: reduce) {
    .img-bg img {
        transform: none !important;
        transition: none !important;
    }
}

.img-bg,
.img-bg img {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

.hero-image .image-wrapper {
    transform-style: preserve-3d;
    transition: transform 0.1s ease-out;
    will-change: transform;
    position: relative;
}

.floating-card {
    transform-style: preserve-3d;
    transition: transform 0.1s ease-out;
    will-change: transform;
    position: absolute;
}

.image-decoration {
    transform-style: preserve-3d;
    transition: transform 0.15s ease-out;
    will-change: transform;
    position: absolute;
}

.hero-image {
    position: relative;
}

.hero-image .floating-card,
.hero-image .image-decoration {
    position: absolute;
}