.carousel-title-container[data-aveo-title-animation="winter"] {
    position: relative;
    isolation: isolate;
    overflow: visible;
}

.carousel-title-container[data-aveo-title-animation="winter"] > a {
    position: relative;
    z-index: 3;
}

.aveo-winter-snow {
    position: absolute;
    z-index: 4;
    top: 0;
    left: var(--aveo-winter-snow-x-offset);
    width: var(--aveo-winter-snow-width);
    height: var(--aveo-winter-snow-height);
    overflow: visible;
    pointer-events: none;
}

.aveo-winter-snowflake {
    position: absolute;
    top: 0;
    left: var(--aveo-winter-snow-x);
    color: #d7f1ff;
    font-family: Arial, sans-serif;
    font-size: var(--aveo-winter-snow-size);
    line-height: 1;
    opacity: 0;
    text-shadow: 0 0 4px rgba(111, 182, 220, .5);
    animation: aveo-winter-snowfall var(--aveo-winter-snow-duration) linear var(--aveo-winter-snow-delay) infinite;
}

.aveo-winter-cluster {
    position: absolute;
    z-index: 5;
    top: var(--aveo-winter-cluster-y);
    left: var(--aveo-winter-cluster-x);
    width: var(--aveo-winter-cluster-size);
    height: var(--aveo-winter-cluster-size);
    pointer-events: none;
    filter: drop-shadow(0 2px 2px rgba(103, 161, 190, .15));
}

.aveo-winter-cluster__flake {
    position: absolute;
    display: block;
    line-height: 1;
    color: #eef9ff;
    text-shadow: 0 0 5px rgba(149, 204, 228, .55);
}

.aveo-winter-snowman {
    position: absolute;
    z-index: 5;
    top: var(--aveo-winter-snowman-y);
    left: var(--aveo-winter-snowman-x);
    width: 124px;
    pointer-events: none;
}

.aveo-winter-snowman img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    filter: drop-shadow(0 3px 4px rgba(84, 122, 143, .2));
}

@keyframes aveo-winter-snowfall {
    0% {
        opacity: 0;
        transform: translate3d(0, var(--aveo-winter-snow-start-y), 0) rotate(0deg);
    }
    12% { opacity: .95; }
    88% { opacity: .9; }
    100% {
        opacity: 0;
        transform: translate3d(var(--aveo-winter-snow-drift), var(--aveo-winter-snow-end-y), 0) rotate(180deg);
    }
}

@media (max-width: 767px) {
    .aveo-winter-cluster,
    .aveo-winter-snowman {
        transform: scale(.72);
        transform-origin: top left;
    }
}

@media (prefers-reduced-motion: reduce) {
    .aveo-winter-snowflake { animation: none; }
}
