/* =========================================================
   TYPING RUSH — PREMIUM HOMEPAGE GAME CARD
   Scoped ONLY to .typing-rush-home
   ========================================================= */

.typing-rush-home {
    width: 100%;
    margin: 30px 0 44px;
}

/* =========================================================
   MAIN CARD
   ========================================================= */

.typing-rush-home .game-container {
    position: relative;

    width: 100%;
    max-width: 1180px;
    height: 390px;

    margin: 0 auto;

    overflow: hidden;

    border-radius: 25px;

    background:
        radial-gradient(circle at 18% 45%,
            rgba(54, 75, 255, 0.24),
            transparent 38%),
        radial-gradient(circle at 82% 35%,
            rgba(151, 38, 255, 0.28),
            transparent 38%),
        linear-gradient(120deg, #070d2b 0%, #11175a 42%, #1c0c45 100%);

    border: 1px solid rgba(88, 113, 255, 0.65);

    box-shadow:
        0 25px 65px rgba(26, 32, 95, 0.27),
        0 0 45px rgba(67, 56, 202, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* =========================================================
   GRID BACKGROUND
   ========================================================= */

.typing-rush-home .typing-grid {
    position: absolute;

    inset: 0;

    opacity: 0.2;

    background-image:
        linear-gradient(rgba(116, 130, 255, 0.2) 1px, transparent 1px),
        linear-gradient(90deg, rgba(116, 130, 255, 0.2) 1px, transparent 1px);

    background-size: 38px 38px;

    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), transparent 95%);

    animation: typingGridMove 18s linear infinite;

    pointer-events: none;
}

@keyframes typingGridMove {
    from {
        background-position: 0 0;
    }

    to {
        background-position: 38px 38px;
    }
}

/* =========================================================
   GLOW
   ========================================================= */

.typing-rush-home .typing-glow {
    position: absolute;

    width: 330px;
    height: 330px;

    border-radius: 50%;

    filter: blur(65px);

    pointer-events: none;

    animation: typingGlowMove 7s ease-in-out infinite alternate;
}

.typing-rush-home .typing-glow-left {
    left: -160px;
    top: 20px;

    background: rgba(43, 72, 255, 0.24);
}

.typing-rush-home .typing-glow-right {
    right: -130px;
    bottom: -180px;

    background: rgba(196, 46, 255, 0.24);

    animation-delay: 2s;
}

@keyframes typingGlowMove {
    from {
        transform: translate(0, 0) scale(1);
    }

    to {
        transform: translate(45px, -25px) scale(1.16);
    }
}

/* =========================================================
   MAIN CONTENT
   ========================================================= */

.typing-rush-home .typing-promo-content {
    position: relative;

    z-index: 5;

    width: 100%;
    height: 100%;

    padding: 28px 42px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;
}

/* =========================================================
   LEFT SECTION
   ========================================================= */

.typing-rush-home .typing-promo-left {
    position: relative;

    width: 56%;

    display: flex;

    flex-direction: column;

    justify-content: center;
}

/* =========================================================
   GAMES BADGE
   ========================================================= */

.typing-rush-home .typing-games-badge {
    display: inline-flex;

    align-items: center;

    width: fit-content;

    padding: 7px 15px;

    margin-bottom: 10px;

    border-radius: 50px;

    background: linear-gradient(135deg, #5665ff, #7849ef);

    color: #ffffff;

    font-size: 13px;

    font-weight: 800;

    letter-spacing: 0.3px;

    box-shadow: 0 8px 22px rgba(82, 91, 255, 0.3);
}

/* =========================================================
   TITLE
   ========================================================= */

.typing-rush-home .typing-promo-left h2 {
    margin: 0;

    font-size: clamp(43px, 4.4vw, 67px);

    line-height: 0.95;

    font-weight: 900;

    letter-spacing: -2.5px;

    color: #ffffff;

    text-shadow: 0 8px 30px rgba(0, 0, 0, 0.22);
}

.typing-rush-home .typing-promo-left h2 span {
    background: linear-gradient(100deg, #ff6685 0%, #ff3d68 45%, #ff7b6a 100%);

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;

    text-shadow: none;
}

.typing-rush-home .typing-promo-left h2 b {
    display: inline-block;

    margin-left: 5px;

    color: #ffd45c;

    font-size: 0.95em;

    filter: drop-shadow(0 0 14px rgba(255, 192, 54, 0.65));

    animation: typingBolt 1.8s ease-in-out infinite;
}

@keyframes typingBolt {

    0%,
    100% {
        transform: translateY(0) rotate(0);
    }

    50% {
        transform: translateY(-5px) rotate(3deg);
    }
}

/* =========================================================
   TAGLINE
   ========================================================= */

.typing-rush-home .typing-promo-left h3 {
    margin: 7px 0 8px;

    color: #ffffff;

    font-size: 22px;

    line-height: 1.1;

    font-weight: 800;

    font-style: italic;
}

/* =========================================================
   DESCRIPTION
   ========================================================= */

.typing-rush-home .typing-main-description {
    max-width: 650px;

    margin: 0 0 15px;

    color: rgba(221, 229, 255, 0.82);

    font-size: 13px;

    line-height: 1.55;
}

/* =========================================================
   FEATURES
   ========================================================= */

.typing-rush-home .typing-features {
    display: flex;

    width: fit-content;

    max-width: 100%;

    margin-bottom: 16px;

    border-radius: 14px;

    background: linear-gradient(90deg,
            rgba(255, 255, 255, 0.075),
            rgba(255, 255, 255, 0.045));

    border: 1px solid rgba(148, 163, 255, 0.18);

    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 8px 20px rgba(0, 0, 0, 0.1);

    backdrop-filter: blur(10px);
}

.typing-rush-home .typing-feature {
    display: flex;

    align-items: center;

    gap: 9px;

    padding: 10px 15px;

    min-width: 145px;
}

.typing-rush-home .typing-feature+.typing-feature {
    border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.typing-rush-home .typing-feature-icon {
    font-size: 24px;

    filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.2));
}

.typing-rush-home .typing-feature strong {
    display: block;

    color: #ffffff;

    font-size: 13px;

    font-weight: 800;
}

.typing-rush-home .typing-feature small {
    display: block;

    margin-top: 2px;

    color: rgba(210, 220, 255, 0.58);

    font-size: 9px;

    white-space: nowrap;
}

/* =========================================================
   CTA
   ========================================================= */

.typing-rush-home .typing-cta-row {
    display: flex;

    align-items: center;

    gap: 20px;
}

/* =========================================================
   PLAY BUTTON
   ========================================================= */

.typing-rush-home .typing-play-button {
    position: relative;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 12px;

    min-width: 305px;

    padding: 14px 22px;

    overflow: hidden;

    border-radius: 50px;

    background: linear-gradient(110deg, #ff506d 0%, #ff4f67 45%, #ff8a45 100%);

    border: 1px solid rgba(255, 255, 255, 0.3);

    color: #ffffff;

    text-decoration: none;

    font-size: 17px;

    font-weight: 900;

    letter-spacing: 0.3px;

    box-shadow:
        0 12px 28px rgba(255, 72, 91, 0.34),
        0 0 30px rgba(255, 83, 87, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.35);

    transition:
        transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 0.3s ease,
        filter 0.3s ease;
}

/* Button shine */

.typing-rush-home .typing-play-button::before {
    content: "";

    position: absolute;

    top: 0;
    left: -120%;

    width: 65%;
    height: 100%;

    background: linear-gradient(90deg,
            transparent,
            rgba(255, 255, 255, 0.28),
            transparent);

    transform: skewX(-20deg);

    animation: typingButtonShine 3.2s ease-in-out infinite;
}

@keyframes typingButtonShine {
    0% {
        left: -120%;
    }

    42%,
    100% {
        left: 150%;
    }
}

.typing-rush-home .typing-play-button:hover {
    color: #ffffff;

    transform: translateY(-3px) scale(1.025);

    filter: brightness(1.07);

    box-shadow:
        0 17px 38px rgba(255, 72, 91, 0.42),
        0 0 35px rgba(255, 83, 87, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.typing-rush-home .typing-play-button:active {
    transform: scale(0.985);
}

.typing-rush-home .typing-play-icon {
    font-size: 18px;
}

.typing-rush-home .typing-arrow {
    font-size: 22px;

    line-height: 1;

    transition: transform 0.25s ease;
}

.typing-rush-home .typing-play-button:hover .typing-arrow {
    transform: translateX(5px);
}

/* =========================================================
   NO SIGN UP
   ========================================================= */

.typing-rush-home .typing-no-signup {
    color: #72a7ff;

    font-size: 13px;

    font-weight: 600;

    white-space: nowrap;

    text-shadow: 0 0 12px rgba(79, 139, 255, 0.22);
}

/* =========================================================
   RIGHT GAME PREVIEW
   ========================================================= */

.typing-rush-home .typing-game-preview {
    position: relative;

    width: 47%;

    height: 100%;

    display: flex;

    align-items: center;

    justify-content: center;
}

.typing-rush-home .preview-inner {
    position: relative;

    width: 100%;

    max-width: 600px;

    height: 300px;

    overflow: hidden;

    border-radius: 25px;

    background:
        radial-gradient(circle at 50% 45%, rgba(0, 126, 255, 0.2), transparent 45%),
        linear-gradient(180deg, #061441 0%, #07194a 58%, #08132f 100%);

    border: 2px solid #5365ff;

    box-shadow:
        0 0 0 1px rgba(81, 91, 255, 0.15),
        0 0 30px rgba(71, 85, 255, 0.25),
        inset 0 0 35px rgba(21, 47, 130, 0.3);
}

/* Preview inner grid */

.typing-rush-home .preview-inner::before {
    content: "";

    position: absolute;

    inset: 0;

    opacity: 0.2;

    background-image:
        linear-gradient(rgba(100, 120, 255, 0.15) 1px, transparent 1px),
        linear-gradient(90deg, rgba(100, 120, 255, 0.15) 1px, transparent 1px);

    background-size: 28px 28px;

    pointer-events: none;
}

/* =========================================================
   PREVIEW STATS
   ========================================================= */

.typing-rush-home .preview-stats {
    position: absolute;

    top: 17px;
    left: 50%;

    transform: translateX(-50%);

    z-index: 10;

    width: 92%;

    display: flex;

    justify-content: center;

    gap: 14px;
}

.typing-rush-home .preview-stat,
.typing-rush-home .preview-lives {
    min-width: 115px;

    padding: 8px 16px;

    text-align: center;

    border-radius: 16px;

    background: rgba(5, 15, 52, 0.72);

    border: 1px solid rgba(83, 101, 255, 0.2);

    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.typing-rush-home .preview-stat small,
.typing-rush-home .preview-lives small {
    display: block;

    color: #8794c9;

    font-size: 9px;

    font-weight: 800;

    letter-spacing: 1px;
}

.typing-rush-home .preview-stat strong {
    display: block;

    margin-top: 1px;

    color: #ffffff;

    font-size: 23px;

    line-height: 1;
}

.typing-rush-home .preview-lives {
    min-width: 175px;
}

.typing-rush-home .preview-lives div {
    margin-top: 3px;

    white-space: nowrap;
}

.typing-rush-home .preview-lives span {
    margin: 0 1px;

    font-size: 14px;

    filter: drop-shadow(0 0 5px rgba(255, 67, 94, 0.45));
}

.typing-rush-home .preview-lives .empty-heart {
    color: #202b63;

    filter: none;
}

/* =========================================================
   PREVIEW WORDS
   ========================================================= */

.typing-rush-home .preview-word {
    position: absolute;

    z-index: 7;

    display: flex;

    align-items: center;

    justify-content: center;

    padding: 9px 18px;

    border-radius: 11px;

    color: #ffffff;

    font-size: 14px;

    font-weight: 800;

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.28);

    will-change: transform;
}

/* Green */

.typing-rush-home .preview-word-1 {
    left: 16%;

    top: 40%;

    background: linear-gradient(135deg, #24e2bd, #13c9b1);

    animation: previewWordOne 3.4s ease-in-out infinite;
}

/* Blue */

.typing-rush-home .preview-word-2 {
    left: 53%;

    top: 34%;

    background: linear-gradient(135deg, #9fbaff, #7696ff);

    color: #17204f;

    animation: previewWordTwo 4s ease-in-out infinite;
}

/* Orange */

.typing-rush-home .preview-word-3 {
    left: 35%;

    top: 65%;

    background: linear-gradient(135deg, #ffb39d, #ff8d72);

    color: #49252c;

    animation: previewWordThree 3.7s ease-in-out infinite;
}

/* Purple */

.typing-rush-home .preview-word-4 {
    right: 14%;

    top: 49%;

    background: linear-gradient(135deg, #d05cff, #a93df0);

    animation: previewWordFour 4.3s ease-in-out infinite;
}

@keyframes previewWordOne {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-11px);
    }
}

@keyframes previewWordTwo {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(8px);
    }
}

@keyframes previewWordThree {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

@keyframes previewWordFour {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(10px);
    }
}

/* =========================================================
   WORD TRAILS
   ========================================================= */

.typing-rush-home .preview-trail {
    position: absolute;

    z-index: 3;

    width: 2px;

    border-radius: 50%;

    opacity: 0.45;

    filter: blur(0.5px);

    transform-origin: top;

    animation: previewTrailPulse 2s ease-in-out infinite alternate;
}

.typing-rush-home .trail-1 {
    left: 20%;

    top: 24%;

    height: 105px;

    background: linear-gradient(to bottom, transparent, #23dfbd);
}

.typing-rush-home .trail-2 {
    left: 58%;

    top: 22%;

    height: 95px;

    background: linear-gradient(to bottom, transparent, #7e9bff);

    animation-delay: 0.5s;
}

.typing-rush-home .trail-3 {
    left: 39%;

    top: 46%;

    height: 80px;

    background: linear-gradient(to bottom, transparent, #ff8c72);

    animation-delay: 0.9s;
}

.typing-rush-home .trail-4 {
    right: 19%;

    top: 28%;

    height: 80px;

    background: linear-gradient(to bottom, transparent, #c34cff);

    animation-delay: 1.2s;
}

@keyframes previewTrailPulse {
    from {
        opacity: 0.22;
    }

    to {
        opacity: 0.58;
    }
}

/* =========================================================
   HORIZON / LANDSCAPE
   ========================================================= */

.typing-rush-home .preview-horizon {
    position: absolute;

    left: 0;
    right: 0;

    bottom: 55px;

    height: 45px;

    background: linear-gradient(180deg, transparent, rgba(24, 49, 100, 0.9));

    z-index: 2;
}

.typing-rush-home .preview-mountain {
    position: absolute;

    bottom: 42px;

    width: 220px;
    height: 70px;

    background: linear-gradient(145deg, #101e52, #172b67);

    opacity: 0.85;

    clip-path: polygon(0 100%, 40% 30%, 52% 55%, 68% 8%, 100% 100%);

    z-index: 2;
}

.typing-rush-home .mountain-one {
    left: -20px;
}

.typing-rush-home .mountain-two {
    right: -30px;

    transform: scaleX(-1);

    opacity: 0.65;
}

/* =========================================================
   DANGER LINE
   ========================================================= */

.typing-rush-home .preview-danger-line {
    position: absolute;

    z-index: 9;

    left: 0;
    right: 0;

    bottom: 45px;

    height: 4px;

    background: repeating-linear-gradient(90deg,
            #ff4d63 0 18px,
            transparent 18px 28px);

    box-shadow: 0 0 12px rgba(255, 68, 90, 0.75);
}

.typing-rush-home .preview-danger-line span {
    position: absolute;

    left: 50%;
    top: 50%;

    transform: translate(-50%, -50%);

    padding: 7px 17px;

    border-radius: 50px;

    background: #10154a;

    border: 2px solid #ff3f61;

    color: #ff5870;

    font-size: 12px;

    font-weight: 900;

    white-space: nowrap;

    box-shadow: 0 0 18px rgba(255, 54, 84, 0.3);
}

/* =========================================================
   PREVIEW STARS
   ========================================================= */

.typing-rush-home .preview-star {
    position: absolute;

    z-index: 4;

    color: #9db0ff;

    font-size: 18px;

    opacity: 0.55;

    animation: previewStarBlink 2.8s ease-in-out infinite;
}

.typing-rush-home .star-1 {
    left: 7%;
    top: 15%;
}

.typing-rush-home .star-2 {
    right: 8%;
    top: 13%;

    animation-delay: 0.8s;
}

.typing-rush-home .star-3 {
    left: 74%;
    top: 23%;

    animation-delay: 1.3s;
}

.typing-rush-home .star-4 {
    left: 30%;
    top: 18%;

    animation-delay: 1.8s;
}

@keyframes previewStarBlink {

    0%,
    100% {
        opacity: 0.25;
        transform: scale(0.8);
    }

    50% {
        opacity: 0.75;
        transform: scale(1.2);
    }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1050px) {
    .typing-rush-home .typing-promo-content {
        padding: 25px;
    }

    .typing-rush-home .typing-promo-left h2 {
        font-size: 48px;
    }

    .typing-rush-home .typing-feature {
        min-width: 125px;

        padding: 9px 10px;
    }

    .typing-rush-home .typing-feature small {
        font-size: 8px;
    }

    .typing-rush-home .typing-play-button {
        min-width: 270px;

        font-size: 15px;
    }

    .typing-rush-home .typing-game-preview {
        width: 45%;
    }
}

/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 820px) {
    .typing-rush-home .game-container {
        height: auto;

        min-height: 600px;
    }

    .typing-rush-home .typing-promo-content {
        height: auto;

        min-height: 600px;

        flex-direction: column;

        padding: 35px 25px;
    }

    .typing-rush-home .typing-promo-left {
        width: 100%;

        align-items: center;

        text-align: center;
    }

    .typing-rush-home .typing-main-description {
        max-width: 600px;
    }

    .typing-rush-home .typing-features {
        margin-left: auto;
        margin-right: auto;
    }

    .typing-rush-home .typing-cta-row {
        justify-content: center;
    }

    .typing-rush-home .typing-game-preview {
        width: 100%;

        height: 290px;
    }

    .typing-rush-home .preview-inner {
        max-width: 620px;
    }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {
    .typing-rush-home {
        margin: 22px 0 35px;
    }

    .typing-rush-home .game-container {
        border-radius: 20px;
    }

    .typing-rush-home .typing-promo-content {
        padding: 28px 16px;
    }

    .typing-rush-home .typing-promo-left h2 {
        font-size: 39px;

        letter-spacing: -1.5px;
    }

    .typing-rush-home .typing-promo-left h3 {
        font-size: 18px;
    }

    .typing-rush-home .typing-main-description {
        font-size: 12px;
    }

    .typing-rush-home .typing-features {
        width: 100%;

        flex-direction: column;
    }

    .typing-rush-home .typing-feature {
        justify-content: center;

        width: 100%;
    }

    .typing-rush-home .typing-feature+.typing-feature {
        border-left: 0;

        border-top: 1px solid rgba(255, 255, 255, 0.1);
    }

    .typing-rush-home .typing-cta-row {
        flex-direction: column;

        gap: 10px;

        width: 100%;
    }

    .typing-rush-home .typing-play-button {
        width: 100%;

        min-width: 0;

        font-size: 14px;
    }

    .typing-rush-home .typing-no-signup {
        font-size: 11px;
    }

    .typing-rush-home .typing-game-preview {
        height: 240px;
    }

    .typing-rush-home .preview-inner {
        height: 240px;

        border-radius: 19px;
    }

    .typing-rush-home .preview-stats {
        gap: 5px;

        top: 11px;
    }

    .typing-rush-home .preview-stat {
        min-width: 72px;

        padding: 6px 7px;
    }

    .typing-rush-home .preview-lives {
        min-width: 105px;

        padding: 6px 7px;
    }

    .typing-rush-home .preview-stat strong {
        font-size: 17px;
    }

    .typing-rush-home .preview-lives span {
        font-size: 10px;
    }

    .typing-rush-home .preview-word {
        padding: 7px 11px;

        font-size: 11px;
    }
}

/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .typing-rush-home *,
    .typing-rush-home *::before,
    .typing-rush-home *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}


/* =========================================================
   TYPING RUSH — CONTINUOUS PREMIUM TITLE ANIMATION
   ========================================================= */

.typing-rush-home .typing-promo-left h2 {
    animation:
        typingTitleFloat 3.2s ease-in-out infinite;
    transform-origin: left center;
}


/* "Typing" stays white, Rush gets animated shine */
.typing-rush-home .typing-promo-left h2 span {
    position: relative;

    display: inline-block;

    background:
        linear-gradient(110deg,
            #ff365f 0%,
            #ff6680 30%,
            #ffb16b 50%,
            #ff6680 70%,
            #ff365f 100%);

    background-size: 220% 100%;

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;

    animation:
        typingRushShine 2.8s linear infinite;
}


/* Smooth floating motion */

@keyframes typingTitleFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-4px);
    }
}


/* Moving light across "Rush" */

@keyframes typingRushShine {

    0% {
        background-position: 200% 50%;
    }

    100% {
        background-position: -20% 50%;
    }
}


/* =========================================================
   EXTRA — RUSH LETTERS SLIGHTLY "ALIVE"
   ========================================================= */

.typing-rush-home .typing-promo-left h2 span {
    text-shadow:
        0 0 8px rgba(255, 64, 100, 0.18),
        0 0 20px rgba(255, 64, 100, 0.08);
}


/* =========================================================
   BOLT SYNCHRONIZED PULSE
   ========================================================= */

.typing-rush-home .typing-promo-left h2 b {
    animation:
        typingBoltPremium 1.8s ease-in-out infinite;
}

@keyframes typingBoltPremium {

    0%,
    100% {
        transform:
            translateY(0) rotate(0deg) scale(1);

        filter:
            drop-shadow(0 0 8px rgba(255, 194, 70, .45));
    }

    50% {
        transform:
            translateY(-6px) rotate(3deg) scale(1.08);

        filter:
            drop-shadow(0 0 18px rgba(255, 194, 70, .85));
    }
}


/* =========================================================
   CHARACTER-BY-CHARACTER BOUNCE
   ========================================================= */

.typing-rush-home .typing-promo-left h2.typing-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;

    animation: none;
}


/* Individual word */

.typing-rush-home .typing-title .typing-word {
    display: inline-flex;
}


/* Every single character */

.typing-rush-home .typing-title .typing-word>span {
    display: inline-block;

    animation:
        typingCharacterBounce 1.8s ease-in-out infinite;

    animation-delay:
        calc(var(--i) * 0.10s);

    transform-origin: center bottom;

    will-change: transform;
}


/* White "Typing" */

.typing-rush-home .typing-title .typing-word:first-child>span {
    color: #ffffff;
}


/* Gradient "Rush" */

.typing-rush-home .typing-title .typing-rush-word>span {
    background:
        linear-gradient(110deg,
            #ff365f 0%,
            #ff6680 30%,
            #ffad69 50%,
            #ff6680 70%,
            #ff365f 100%);

    background-size: 220% 100%;

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;

    animation:
        typingCharacterBounce 1.8s ease-in-out infinite,
        typingRushColorFlow 2.8s linear infinite;

    animation-delay:
        calc(var(--i) * 0.10s),
        0s;
}


/* The actual bounce */

@keyframes typingCharacterBounce {

    0%,
    55%,
    100% {
        transform:
            translateY(0) scale(1);
    }

    8% {
        transform:
            translateY(-11px) scale(1.06);
    }

    16% {
        transform:
            translateY(0) scale(.98);
    }

    25% {
        transform:
            translateY(-4px) scale(1.02);
    }

    32% {
        transform:
            translateY(0) scale(1);
    }
}


/* Moving light on Rush */

@keyframes typingRushColorFlow {

    0% {
        background-position: 200% 50%;
    }

    100% {
        background-position: -20% 50%;
    }
}


/* Keep the lightning bolt independent */

.typing-rush-home .typing-title b {
    display: inline-block;

    margin-left: 10px;

    animation:
        typingBoltPremium 1.8s ease-in-out infinite;

    animation-delay: .55s;
}