

.reveal-up {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

.reveal-up.is-revealed {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .reveal-up {
        transition: none;
        opacity: 1;
        transform: none;
    }
}

.hs-stat-number {
    font-variant-numeric: tabular-nums;
}

.hs-track-record-grid .hs-stat-card.reveal-up {
    transform: translateY(48px) scale(0.96);
    transition: opacity 1.1s cubic-bezier(0.16, 1, 0.3, 1),
        transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}

.hs-track-record-grid .hs-stat-card.reveal-up.is-revealed {
    transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
    .hs-track-record-grid .hs-stat-card.reveal-up {
        transition: none;
        transform: none;
    }
}

.hs-industries-accordion .hs-accordion-pane.reveal-up {
    transform: translateY(48px) scale(0.96);
    transition: flex-grow 0.25s ease-in,
        opacity 1.1s cubic-bezier(0.16, 1, 0.3, 1),
        transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}

.hs-industries-accordion .hs-accordion-pane.reveal-up.is-revealed {
    transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
    .hs-industries-accordion .hs-accordion-pane.reveal-up {
        transition: flex-grow 0.25s ease-in;
        transform: none;
    }
}

/* ---------- Hero background parallax + hover zoom ---------- */

.hs-hero {
    --hero-parallax-y: 0px;
    transition: background-size 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.hs-hero:hover {
    background-size: 112% 112%;
}

.hs-hero::before {
    left: var(--hero-glow-left, 50%);
    top: var(--hero-glow-top, 50%);
    transform: translate(-50%, calc(-50% + var(--hero-parallax-y, 0px)));
    transition: width 0.8s cubic-bezier(0.16, 1, 0.3, 1),
        height 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.hs-hero:hover::before {
    width: 720px;
    height: 720px;
}

@media (prefers-reduced-motion: reduce) {
    .hs-hero,
    .hs-hero::before {
        transition: none;
    }

    .hs-hero::before {
        transform: translate(-50%, -50%);
    }
}

/* Mouse-follow hover glow disabled
.hs-hero::after {
    transform: translate(
        calc(var(--hero-mouse-x, 50%) - 50%),
        calc(var(--hero-mouse-y, 50%) - 50%)
    );
    opacity: 0;
    transition: opacity 0.3s ease;
}

.hs-hero.is-mouse-active::after {
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .hs-hero::after {
        display: none;
    }
}
*/


.hs-typewriter.is-typing {
    min-height: 1.35em;
}

.hs-typewriter.is-typing::after {
    content: "";
    display: inline-block;
    width: 3px;
    height: 0.9em;
    margin-left: 4px;
    vertical-align: -0.05em;
    background: var(--ds-color-accent, #31aaec);
    animation: hs-typewriter-caret 0.8s step-end infinite;
}

@keyframes hs-typewriter-caret {
    50% {
        opacity: 0;
    }
}


.hs-odo-col {
    position: relative;
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
}

.hs-odo-sizer {
    display: block;
    visibility: hidden;
}

.hs-odo-strip {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    will-change: transform;
}

.hs-odo-strip > span {
    display: block;
    text-align: center;
}

.hs-stat-card .hs-odo-char,
.hs-stat-card .hs-odo-strip > span {
    background: var(
        --ds-gradient-text,
        linear-gradient(90deg, #31aaec 28.27%, #167cb4 82.58%)
    );
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
