@-moz-keyframes reveal-banner {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@-webkit-keyframes reveal-banner {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@-ms-keyframes reveal-banner {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

@keyframes reveal-banner {
    0% { opacity: 0; }
    100% { opacity: 1; }
}

#banner {
    position: relative;
    background-attachment: fixed;
    background-color: #645862;
    background-position: bottom center;
    background-repeat: no-repeat;
    background-size: cover;
    color: #fff;
    cursor: default;
    padding: 10em 0;
    text-align: left;
}

#banner .banner-content {
    /*-moz-animation: reveal-banner 1s 0.25s ease-in-out;*/
    /*-webkit-animation: reveal-banner 1s 0.25s ease-in-out;*/
    /*-ms-animation: reveal-banner 1s 0.25s ease-in-out;*/
    /*animation: reveal-banner 1s 0.25s ease-in-out;*/
    /*-moz-animation-fill-mode: forwards;*/
    /*-webkit-animation-fill-mode: forwards;*/
    /*-ms-animation-fill-mode: forwards;*/
    /*animation-fill-mode: forwards;*/
    position: relative;
    display: inline-block;
    opacity: 1;
    padding: 2em;
    text-align: center;
    transition: transform 0.1s ease-out, opacity 0.1s ease-out;
    will-change: transform, opacity;
    z-index: 3; /* Make sure it's above the background */
}

#banner .banner-content img {
    max-width: 300px;
    width: 100%;
    margin-bottom: -2em;
    /*z-index: 1; !* Make sure it's above the background *!*/
}

.banner-side-image {
    position: absolute;
    right: 4em; /* This will position it on the right side */
    top: 7em; /* Center it vertically */
    text-align: right;
    /*transform: translateY(-50%); !* Adjust for true vertical centering *!*/
    max-width: 65%; /* Adjust as needed */
    z-index: 2; /* Make sure it's above the background */
}

.banner-side-image img {
    width: 100%;
    height: auto;
    max-width: 100%;
}

/* Responsive adjustments */
/* Normal (1280px and down) */
@media screen and (max-width: 1280px) {
    .banner-content {
        margin-top: 0em;
    }
    .banner-side-image {
        /*position: static;*/
        margin-top: 2.5em;
        right: 1em;
        max-width: 65%;
    }
}

/* Narrow (980px and down) */
@media screen and (max-width: 980px) {
    .banner-content {
        margin-top: -10em;
    }
    .banner-side-image {
        position: static;
        margin-top: -6em;
        max-width: 900px;
    }
}

/* Narrower (840px and down) */
@media screen and (max-width: 840px) {
    .banner-content {
        margin-top: -10em;
    }
    .banner-side-image {
        position: static;
        margin-top: -5em;
        max-width: 800px;
    }
}

/* Mobile (736px and down) */
@media screen and (max-width: 736px) {
    .banner-content {
        margin-top: -10em;
    }
    .banner-side-image {
        position: static;
        margin-top: -5em;
        max-width: 600px;
    }
}