.lamp-wrapper {
    position: absolute;
    top: 0px;
    right: 65%;
    width: 130px;
    z-index: 10;
    pointer-events: none;
    display: none;
}

@media (min-width: 1024px) {
    .lamp-wrapper {
        display: block;
    }
}

.lamp-wrapper img {
    width: 100%;
    height: auto;
    display: block;
}

.lamp-swing {
    position: relative;
    width: 100%;
    animation: swing-anim 6.25s infinite ease-in-out;
    transform-origin: 19% -20px;
}

.lamp-swing::before {
    content: "";
    display: block;
    position: absolute;
    width: 2px;
    height: 0px;
    background: #000;
    top: 0px;
    left: 18%;
}

.lamp-swing::after {
    content: "";
    display: block;
    position: absolute;
    top: 78%;
    left: 50%;
    margin-left: -84px;
    z-index: -1;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.7), transparent);
    height: 450px;
    width: 168px;
    border-radius: 100% 100% 0 0;
}

.lamp-wrapper::before {
    content: "";
    width: 14px;
    height: 5px;
    left: 50%;
    margin-left: -7px;
    position: absolute;
    top: 78%;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0);
    box-shadow: 0 10px 10px 2px #fff;
    animation: flash-anim 6.25s infinite ease-in-out alternate;
}

@keyframes swing-anim {
    0%   { transform: rotate(-18deg); }
    50%  { transform: rotate(18deg); }
    100% { transform: rotate(-18deg); }
}

@keyframes flash-anim {
    0%   { opacity: 0.5; transform: scale(0.9); }
    50%  { opacity: 1;   transform: scale(1.1); }
    100% { opacity: 0.5; transform: scale(0.9); }
}

@media (max-width: 1023px) {
    .lamp-wrapper {
        display: block;
        width: 70px;
        right: 40%;
        z-index: 1;
    }

    .lamp-swing::after {
        height: 200px;
        width: 90px;
        margin-left: -45px;
    }

    .lamp-wrapper::before {
        width: 8px;
        height: 3px;
        margin-left: -4px;
    }
}