    @keyframes rain {
        0% {
            background-position: 0px 0px
        }

        100% {
            background-position: 500px 1000px
        }
    }

    @-webkit-keyframes rain {
        0% {
            background-position: 0px 0px
        }

        100% {
            background-position: 500px 1000px
        }
    }

    .effect-rain {
        background-image: url("https://w.ladicdn.com/s450x400/6446a909ce8883001284c7a2/traitim-size2-20231213075433-pjmzq.png");
        -webkit-animation: rain 2s linear infinite;
        animation: rain 2s linear infinite
    }

    @keyframes sparkle {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: -500px -1000px, -400px -400px, 300px 300px
        }
    }

    @-webkit-keyframes sparkle {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: -500px -1000px, -200px -400px, 300px 300px
        }
    }

    .effect-sparkle {
        background-image: url("https://w.ladicdn.com/s550x550/6446a909ce8883001284c7a2/sparkle1-20231210061725-zdcce.png"), url("https://w.ladicdn.com/s550x550/6446a909ce8883001284c7a2/sparkle2-20231210061725-kp_vi.png");
        -webkit-animation: sparkle 60s linear infinite;
        animation: sparkle 60s linear infinite
    }

    @keyframes glass {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: 500px 1000px, 400px 400px
        }
    }

    @-webkit-keyframes glass {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: 500px 1000px, -400px -400px
        }
    }

    .effect-sliding-glass {
        background-image: url("../img/effects/glass1.png"), url("../img/effects/glass2.png");
        -webkit-animation: glass 30s linear infinite;
        animation: glass 30s linear infinite
    }

    @keyframes confetti {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: 500px 1000px, 400px 400px, 300px 300px
        }
    }

    @-webkit-keyframes confetti {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: 500px 1000px, 400px 400px, 300px 300px
        }
    }

    .effect-confetti {
        background-image: url("../img/effects/confetti1.png"), url("../img/effects/confetti2.png");
        -webkit-animation: confetti 10s linear infinite;
        animation: confetti 10s linear infinite
    }

    @keyframes snow {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: 500px 1000px, 400px 400px, 300px 300px
        }
    }

    @-webkit-keyframes snow {
        0% {
            background-position: 0px 0px, 0px 0px, 0px 0px
        }

        100% {
            background-position: 500px 1000px, 400px 400px, 300px 300px
        }
    }

    .effect-snow {
        background-image: url("https://w.ladicdn.com/s550x450/6446a909ce8883001284c7a2/traitim-size2-20231213080553-0bimd.png");
        -webkit-animation: snow 40s linear infinite;
        animation: snow 40s linear infinite
    }

    @-webkit-keyframes fadeInUp {
        0% {
            opacity: 0;
            -webkit-transform: translateY(20px);
            transform: translateY(20px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @keyframes fadeInUp {
        0% {
            opacity: 0;
            -webkit-transform: translateY(20px);
            -ms-transform: translateY(20px);
            transform: translateY(20px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @-webkit-keyframes fadeInDown {
        0% {
            opacity: 0;
            -webkit-transform: translateY(-20px);
            transform: translateY(-20px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @keyframes fadeInDown {
        0% {
            opacity: 0;
            -webkit-transform: translateY(-20px);
            -ms-transform: translateY(-20px);
            transform: translateY(-20px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @-webkit-keyframes bounceIn {
        0% {
            opacity: 0;
            -webkit-transform: scale(0.3);
            transform: scale(0.3);
        }

        50% {
            opacity: 1;
            -webkit-transform: scale(1.05);
            transform: scale(1.05);
        }

        70% {
            -webkit-transform: scale(0.9);
            transform: scale(0.9);
        }

        100% {
            opacity: 1;
            -webkit-transform: scale(1);
            transform: scale(1);
        }
    }

    @keyframes bounceIn {
        0% {
            opacity: 0;
            -webkit-transform: scale(0.3);
            -ms-transform: scale(0.3);
            transform: scale(0.3);
        }

        50% {
            opacity: 1;
            -webkit-transform: scale(1.05);
            -ms-transform: scale(1.05);
            transform: scale(1.05);
        }

        70% {
            -webkit-transform: scale(0.9);
            -ms-transform: scale(0.9);
            transform: scale(0.9);
        }

        100% {
            opacity: 1;
            -webkit-transform: scale(1);
            -ms-transform: scale(1);
            transform: scale(1);
        }
    }

    @-webkit-keyframes pulse {
        0% {
            -webkit-transform: scale(1);
            transform: scale(1);
        }

        50% {
            -webkit-transform: scale(1.1);
            transform: scale(1.1);
        }

        100% {
            -webkit-transform: scale(1);
            transform: scale(1);
        }
    }

    @keyframes pulse {
        0% {
            -webkit-transform: scale(1);
            -ms-transform: scale(1);
            transform: scale(1);
        }

        50% {
            -webkit-transform: scale(1.1);
            -ms-transform: scale(1.1);
            transform: scale(1.1);
        }

        100% {
            -webkit-transform: scale(1);
            -ms-transform: scale(1);
            transform: scale(1);
        }
    }

    @-webkit-keyframes rotateInUpLeft {
        0% {
            -webkit-transform-origin: left bottom;
            transform-origin: left bottom;
            -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
            opacity: 0;
        }

        100% {
            -webkit-transform-origin: left bottom;
            transform-origin: left bottom;
            -webkit-transform: rotate(0);
            transform: rotate(0);
            opacity: 1;
        }
    }

    @keyframes rotateInUpLeft {
        0% {
            -webkit-transform-origin: left bottom;
            -ms-transform-origin: left bottom;
            transform-origin: left bottom;
            -webkit-transform: rotate(90deg);
            -ms-transform: rotate(90deg);
            transform: rotate(90deg);
            opacity: 0;
        }

        100% {
            -webkit-transform-origin: left bottom;
            -ms-transform-origin: left bottom;
            transform-origin: left bottom;
            -webkit-transform: rotate(0);
            -ms-transform: rotate(0);
            transform: rotate(0);
            opacity: 1;
        }
    }

    @-webkit-keyframes rotateInUpRight {
        0% {
            -webkit-transform-origin: right bottom;
            transform-origin: right bottom;
            -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
            opacity: 0;
        }

        100% {
            -webkit-transform-origin: right bottom;
            transform-origin: right bottom;
            -webkit-transform: rotate(0);
            transform: rotate(0);
            opacity: 1;
        }
    }

    @keyframes rotateInUpRight {
        0% {
            -webkit-transform-origin: right bottom;
            -ms-transform-origin: right bottom;
            transform-origin: right bottom;
            -webkit-transform: rotate(-90deg);
            -ms-transform: rotate(-90deg);
            transform: rotate(-90deg);
            opacity: 0;
        }

        100% {
            -webkit-transform-origin: right bottom;
            -ms-transform-origin: right bottom;
            transform-origin: right bottom;
            -webkit-transform: rotate(0);
            -ms-transform: rotate(0);
            transform: rotate(0);
            opacity: 1;
        }
    }

    @-webkit-keyframes bounceInDown {
        0% {
            opacity: 0;
            -webkit-transform: translateY(-2000px);
            transform: translateY(-2000px);
        }

        60% {
            opacity: 1;
            -webkit-transform: translateY(30px);
            transform: translateY(30px);
        }

        80% {
            -webkit-transform: translateY(-10px);
            transform: translateY(-10px);
        }

        100% {
            -webkit-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @keyframes bounceInDown {
        0% {
            opacity: 0;
            -webkit-transform: translateY(-2000px);
            -ms-transform: translateY(-2000px);
            transform: translateY(-2000px);
        }

        60% {
            opacity: 1;
            -webkit-transform: translateY(30px);
            -ms-transform: translateY(30px);
            transform: translateY(30px);
        }

        80% {
            -webkit-transform: translateY(-10px);
            -ms-transform: translateY(-10px);
            transform: translateY(-10px);
        }

        100% {
            -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @-webkit-keyframes fadeInRight {
        0% {
            opacity: 0;
            -webkit-transform: translateX(20px);
            transform: translateX(20px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateX(0);
            transform: translateX(0);
        }
    }

    @keyframes fadeInRight {
        0% {
            opacity: 0;
            -webkit-transform: translateX(40px);
            -ms-transform: translateX(40px);
            transform: translateX(40px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateX(0);
            -ms-transform: translateX(0);
            transform: translateX(0);
        }
    }

    @-webkit-keyframes bounceInUp {
        0% {
            opacity: 0;
            -webkit-transform: translateY(2000px);
            transform: translateY(2000px);
        }

        60% {
            opacity: 1;
            -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
        }

        80% {
            -webkit-transform: translateY(10px);
            transform: translateY(10px);
        }

        100% {
            -webkit-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @keyframes bounceInUp {
        0% {
            opacity: 0;
            -webkit-transform: translateY(2000px);
            -ms-transform: translateY(2000px);
            transform: translateY(2000px);
        }

        60% {
            opacity: 1;
            -webkit-transform: translateY(-30px);
            -ms-transform: translateY(-30px);
            transform: translateY(-30px);
        }

        80% {
            -webkit-transform: translateY(10px);
            -ms-transform: translateY(10px);
            transform: translateY(10px);
        }

        100% {
            -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
            transform: translateY(0);
        }
    }

    @-webkit-keyframes bounce {

        0%,
        100%,
        20%,
        50%,
        80% {
            -webkit-transform: translateY(0);
            transform: translateY(0);
        }

        40% {
            -webkit-transform: translateY(-30px);
            transform: translateY(-30px);
        }

        60% {
            -webkit-transform: translateY(-15px);
            transform: translateY(-15px);
        }
    }

    @keyframes bounce {

        0%,
        100%,
        20%,
        50%,
        80% {
            -webkit-transform: translateY(0);
            -ms-transform: translateY(0);
            transform: translateY(0);
        }

        40% {
            -webkit-transform: translateY(-30px);
            -ms-transform: translateY(-30px);
            transform: translateY(-30px);
        }

        60% {
            -webkit-transform: translateY(-15px);
            -ms-transform: translateY(-15px);
            transform: translateY(-15px);
        }
    }

    @-webkit-keyframes rotateIn {
        0% {
            -webkit-transform-origin: center center;
            transform-origin: center center;
            -webkit-transform: rotate(-200deg);
            transform: rotate(-200deg);
            opacity: 0;
        }

        100% {
            -webkit-transform-origin: center center;
            transform-origin: center center;
            -webkit-transform: rotate(0);
            transform: rotate(0);
            opacity: 1;
        }
    }

    @keyframes rotateIn {
        0% {
            -webkit-transform-origin: center center;
            -ms-transform-origin: center center;
            transform-origin: center center;
            -webkit-transform: rotate(-200deg);
            -ms-transform: rotate(-200deg);
            transform: rotate(-200deg);
            opacity: 0;
        }

        100% {
            -webkit-transform-origin: center center;
            -ms-transform-origin: center center;
            transform-origin: center center;
            -webkit-transform: rotate(0);
            -ms-transform: rotate(0);
            transform: rotate(0);
            opacity: 1;
        }
    }

    @-webkit-keyframes bounceInRight {
        0% {
            opacity: 0;
            -webkit-transform: translateX(2000px);
            transform: translateX(2000px);
        }

        60% {
            opacity: 1;
            -webkit-transform: translateX(-30px);
            transform: translateX(-30px);
        }

        80% {
            -webkit-transform: translateX(10px);
            transform: translateX(10px);
        }

        100% {
            -webkit-transform: translateX(0);
            transform: translateX(0);
        }
    }

    @keyframes bounceInRight {
        0% {
            opacity: 0;
            -webkit-transform: translateX(2000px);
            -ms-transform: translateX(2000px);
            transform: translateX(2000px);
        }

        60% {
            opacity: 1;
            -webkit-transform: translateX(-30px);
            -ms-transform: translateX(-30px);
            transform: translateX(-30px);
        }

        80% {
            -webkit-transform: translateX(10px);
            -ms-transform: translateX(10px);
            transform: translateX(10px);
        }

        100% {
            -webkit-transform: translateX(0);
            -ms-transform: translateX(0);
            transform: translateX(0);
        }
    }

    @-webkit-keyframes swing {
        20% {
            -webkit-transform: rotate(15deg);
            transform: rotate(15deg);
        }

        40% {
            -webkit-transform: rotate(-10deg);
            transform: rotate(-10deg);
        }

        60% {
            -webkit-transform: rotate(5deg);
            transform: rotate(5deg);
        }

        80% {
            -webkit-transform: rotate(-5deg);
            transform: rotate(-5deg);
        }

        100% {
            -webkit-transform: rotate(0);
            transform: rotate(0);
        }
    }

    @keyframes swing {
        20% {
            -webkit-transform: rotate(15deg);
            -ms-transform: rotate(15deg);
            transform: rotate(15deg);
        }

        40% {
            -webkit-transform: rotate(-10deg);
            -ms-transform: rotate(-10deg);
            transform: rotate(-10deg);
        }

        60% {
            -webkit-transform: rotate(5deg);
            -ms-transform: rotate(5deg);
            transform: rotate(5deg);
        }

        80% {
            -webkit-transform: rotate(-5deg);
            -ms-transform: rotate(-5deg);
            transform: rotate(-5deg);
        }

        100% {
            -webkit-transform: rotate(0);
            -ms-transform: rotate(0);
            transform: rotate(0);
        }
    }

    @-webkit-keyframes shake {

        0%,
        100% {
            -webkit-transform: translateX(0);
            transform: translateX(0);
        }

        10%,
        30%,
        50%,
        70%,
        90% {
            -webkit-transform: translateX(-10px);
            transform: translateX(-10px);
        }

        20%,
        40%,
        60%,
        80% {
            -webkit-transform: translateX(10px);
            transform: translateX(10px);
        }
    }

    @keyframes shake {

        0%,
        100% {
            -webkit-transform: translateX(0);
            -ms-transform: translateX(0);
            transform: translateX(0);
        }

        10%,
        30%,
        50%,
        70%,
        90% {
            -webkit-transform: translateX(-10px);
            -ms-transform: translateX(-10px);
            transform: translateX(-10px);
        }

        20%,
        40%,
        60%,
        80% {
            -webkit-transform: translateX(10px);
            -ms-transform: translateX(10px);
            transform: translateX(10px);
        }
    }

    @-webkit-keyframes fadeInLeft {
        0% {
            opacity: 0;
            -webkit-transform: translateX(-20px);
            transform: translateX(-20px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateX(0);
            transform: translateX(0);
        }
    }

    @keyframes fadeInLeft {
        0% {
            opacity: 0;
            -webkit-transform: translateX(-20px);
            -ms-transform: translateX(-20px);
            transform: translateX(-20px);
        }

        100% {
            opacity: 1;
            -webkit-transform: translateX(0);
            -ms-transform: translateX(0);
            transform: translateX(0);
        }
    }

    [data-hint]:after {
        content: attr(data-hint);
        text-align: center;
        white-space: nowrap;
        z-index: 9999;
        background: #292929;
        padding: 3px 7px;
        border-radius: 2px;
        color: white;
        font-weight: 400;
        font-size: 12px;
        line-height: 16px;
    }

    [data-hint]:after,
    [data-hint]:before {
        display: inline-block;
        pointer-events: none;
        position: absolute;
        visibility: hidden;
    }

    [data-hint]:hover:after,
    [data-hint]:hover:before {
        visibility: visible;
    }

    [data-hint]:before {
        content: "";
        border: 5px solid transparent;
        z-index: 9998;
    }

    .hint-persist:before,
    .hint-persist:after {
        visibility: visible;
    }

    @media only screen and (max-width: 768px) {

        [class*="hint-"][class*="-mobile"]:after,
        [class*="hint-"][class*="-mobile"]:before {
            display: none;
        }
    }

    .hint-d-short:hover:after,
    .hint-d-short:hover:before {
        -webkit-transition: visibility 0s 0.3s ease;
        transition: visibility 0s 0.3s ease;
    }

    [class*="hint-fade"][class*="-d-short"]:hover:before,
    [class*="hint-fade"][class*="-d-short"]:hover:after,
    [class*="hint-anim"][class*="-d-short"]:hover:before,
    [class*="hint-anim"][class*="-d-short"]:hover:after {
        -webkit-transition-delay: 0.3s;
        transition-delay: 0.3s;
    }

    [class*="hint-fade"]:before,
    [class*="hint-fade"]:after {
        -webkit-transition: opacity 0.2s ease-out, visibility 0.2s ease-out;
        transition: opacity 0.2s ease-out, visibility 0.2s ease-out;
        opacity: 0;
    }

    [class*="hint-fade"]:hover:before,
    [class*="hint-fade"]:hover:after {
        opacity: 1;
    }

    [class*="hint-"][class*="-s-small"]:after {
        max-width: 200px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
        white-space: normal;
    }

    [class*="hint-top"]:before {
        border-top-color: #292929;
        bottom: 100%;
        margin-bottom: 0px;
    }

    [class*="hint-top"]:after {
        bottom: 100%;
        margin-bottom: 10px;
    }

    [class*="hint-anim"][class*="hint-top"]:after,
    [class*="hint-anim"][class*="hint-top"]:before {
        bottom: 125%;
        opacity: 0;
        -webkit-transition: opacity 0.3s ease-out, visibility 0.3s ease-out, bottom 0.3s ease-out;
        transition: opacity 0.3s ease-out, visibility 0.3s ease-out, bottom 0.3s ease-out;
    }

    [class*="hint-anim"][class*="hint-top"]:hover:after,
    [class*="hint-anim"][class*="hint-top"]:hover:before {
        opacity: 1;
        bottom: 100%;
    }

    [class*="hint-top-middle"]:before {
        right: 50%;
        margin-right: -5px;
    }

    [class*="hint-top-middle"]:after {
        left: 50%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
    }

    [class*="hint-bottom"]:before {
        border-bottom-color: #292929;
        top: 100%;
        margin-top: 0px;
    }

    [class*="hint-bottom"]:after {
        margin-top: 10px;
        top: 100%;
    }

    [class*="hint-anim"][class*="hint-bottom"]:after,
    [class*="hint-anim"][class*="hint-bottom"]:before {
        top: 125%;
        opacity: 0;
        -webkit-transition: opacity 0.3s ease, visibility 0.3s ease, top 0.3s ease;
        transition: opacity 0.3s ease, visibility 0.3s ease, top 0.3s ease;
    }

    [class*="hint-anim"][class*="hint-bottom"]:hover:after,
    [class*="hint-anim"][class*="hint-bottom"]:hover:before {
        top: 100%;
        opacity: 1;
    }

    [class*="hint-bottom-middle"]:before {
        right: 50%;
        margin-right: -5px;
    }

    [class*="hint-bottom-middle"]:after {
        left: 50%;
        -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
        transform: translateX(-50%);
    }

    @-webkit-keyframes snowflakes-fall {
        0% {
            top: -10%
        }

        100% {
            top: 100%
        }
    }

    @-webkit-keyframes snowflakes-shake {

        0%,
        100% {
            -webkit-transform: translateX(0);
            transform: translateX(0)
        }

        50% {
            -webkit-transform: translateX(80px);
            transform: translateX(80px)
        }
    }

    @keyframes snowflakes-fall {
        0% {
            top: -10%
        }

        100% {
            top: 100%
        }
    }

    @keyframes snowflakes-shake {

        0%,
        100% {
            transform: translateX(0)
        }

        50% {
            transform: translateX(80px)
        }
    }

    .snowflake {
        color: #fff;
        font-size: 2px;
        font-family: Arial, sans-serif;
        text-shadow: 0 0 5px #FA6614;
        position: fixed;
        top: -10%;
        z-index: 9999;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        cursor: default;
        -webkit-animation-name: snowflakes-fall, snowflakes-shake;
        -webkit-animation-duration: 10s, 3s;
        -webkit-animation-timing-function: linear, ease-in-out;
        -webkit-animation-iteration-count: infinite, infinite;
        -webkit-animation-play-state: running, running;
        animation-name: snowflakes-fall, snowflakes-shake;
        animation-duration: 10s, 3s;
        animation-timing-function: linear, ease-in-out;
        animation-iteration-count: infinite, infinite;
        animation-play-state: running, running;
    }

    .icon_start {
        width: 20px;
    }

    .snowflake:nth-of-type(0) {
        left: 1%;
        -webkit-animation-delay: 0s, 0s;
        animation-delay: 0s, 0s
    }

    .snowflake:nth-of-type(1) {
        left: 10%;
        -webkit-animation-delay: 1s, 1s;
        animation-delay: 1s, 1s
    }

    .snowflake:nth-of-type(2) {
        left: 20%;
        -webkit-animation-delay: 6s, .5s;
        animation-delay: 6s, .5s
    }

    .snowflake:nth-of-type(3) {
        left: 30%;
        -webkit-animation-delay: 4s, 2s;
        animation-delay: 4s, 2s
    }

    .snowflake:nth-of-type(4) {
        left: 40%;
        -webkit-animation-delay: 2s, 2s;
        animation-delay: 2s, 2s
    }

    .snowflake:nth-of-type(5) {
        left: 50%;
        -webkit-animation-delay: 8s, 3s;
        animation-delay: 8s, 3s
    }

    .snowflake:nth-of-type(6) {
        left: 60%;
        -webkit-animation-delay: 6s, 2s;
        animation-delay: 6s, 2s
    }

    .snowflake:nth-of-type(7) {
        left: 70%;
        -webkit-animation-delay: 2.5s, 1s;
        animation-delay: 2.5s, 1s
    }

    .snowflake:nth-of-type(8) {
        left: 80%;
        -webkit-animation-delay: 1s, 0s;
        animation-delay: 1s, 0s
    }

    .snowflake:nth-of-type(9) {
        left: 90%;
        -webkit-animation-delay: 3s, 1.5s;
        animation-delay: 3s, 1.5s
    }

    .snowflake:nth-of-type(10) {
        left: 25%;
        -webkit-animation-delay: 2s, 0s;
        animation-delay: 2s, 0s
    }

    .snowflake:nth-of-type(11) {
        left: 65%;
        -webkit-animation-delay: 4s, 2.5s;
        animation-delay: 4s, 2.5s
    }