/*
|--------------------------------------------------------------------------
| Hero Network
|--------------------------------------------------------------------------
*/

.hero-network {
    --hero-bg: #07090c;
    --hero-text: #ffffff;
    --hero-muted: rgba(255, 255, 255, .68);

    --hero-cyan: #00acd0;
    --hero-green: #91c73e;

    --hero-button: #2ec17b;

    position: relative;

    width: 100%;
    min-height: 800px;

    box-sizing: border-box;

    display: flex;
    align-items: center;

    padding-inline: 120px;

    overflow: hidden;
    isolation: isolate;

    background:
            radial-gradient(
                    circle at 78% 48%,
                    rgba(46, 193, 123, .055),
                    transparent 27%
            ),
            radial-gradient(
                    circle at 72% 45%,
                    rgba(0, 172, 208, .045),
                    transparent 30%
            ),
            var(--hero-bg);

    color: var(--hero-text);
}


/*
|--------------------------------------------------------------------------
| Inner
|--------------------------------------------------------------------------
*/

.hero-network__inner {
    position: relative;

    width: 100%;
    max-width: 1440px;
    height: 800px;

    margin-inline: auto;

    display: flex;
    align-items: center;

    gap: 80px;

    box-sizing: border-box;
}


/*
|--------------------------------------------------------------------------
| Copy
|--------------------------------------------------------------------------
*/

.hero-network__copy {
    position: relative;

    z-index: 3;

    width: 950px;
    max-width: 950px;

    flex: 0 0 950px;
}


/*
|--------------------------------------------------------------------------
| Eyebrow
|--------------------------------------------------------------------------
*/

.hero-network__eyebrow {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: 28px;

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 600;
    font-style: normal;
    line-height: 100%;
    letter-spacing: .02em;

    text-transform: uppercase;
}

.hero-network__eyebrow-label {
    color: #ffffff;
}

.hero-network__eyebrow-separator {
    color: rgba(255, 255, 255, .45);
}

.hero-network__categories {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 6px;
}

.hero-network__category {
    display: inline-flex;
    align-items: center;

    min-height: 24px;

    padding: 4px 8px;

    box-sizing: border-box;

    border-radius: 3px;

    background: #ffffff;

    color: #101619;

    font-family: "Manrope", sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 100%;
    letter-spacing: 0;

    text-transform: none;
}


.hero-network__category svg {
    visibility: hidden;
}

.hero-network__category:hover svg {
    visibility: visible;
}


.hero-network__category--gradient {
    background: linear-gradient(
            89.99deg,
            #00b8e0 0%,
            #91c73e 65.86%
    );

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

    color: transparent;
}


/*
|--------------------------------------------------------------------------
| Title
|--------------------------------------------------------------------------
*/

.hero-network__title {
    width: 950px;
    max-width: 950px;

    margin: 0;

    font-family: "Manrope", sans-serif;
    font-size: 60px;
    font-weight: 600;
    font-style: normal;
    line-height: 120%;
    letter-spacing: 0;

    color: var(--hero-text);
}

.hero-network__title-main,
.hero-network__accent {
    font-family: "Manrope", sans-serif;
    font-size: 60px;
    font-weight: 600;
    font-style: normal;
    line-height: 120%;
    letter-spacing: 0;
}

.hero-network__title-main {
    color: #ffffff;
}

.hero-network__accent {
    display: inline;

    background: linear-gradient(
            101.11deg,
            #00acd0 -12.65%,
            #91c73e 132.38%
    );

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

    color: transparent;
}


/*
|--------------------------------------------------------------------------
| Description
|--------------------------------------------------------------------------
*/

.hero-network__description {
    width: 100%;
    max-width: 760px;

    margin: 24px 0 0;

    font-family: "Manrope", sans-serif;
    font-size: 20px;
    font-weight: 400;
    font-style: normal;
    line-height: 140%;
    letter-spacing: 0;

    color: var(--hero-muted);
}


/*
|--------------------------------------------------------------------------
| Actions
|--------------------------------------------------------------------------
*/

.hero-network__actions {
    display: flex;
    align-items: center;

    gap: 16px;

    margin-top: 32px;
}

.hero-network__button {
    height: 49px;

    box-sizing: border-box;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 12px 24px;

    border-radius: 0;

    text-decoration: none;

    font-family: "Manrope", sans-serif;
    font-size: 18px;
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0;

    white-space: nowrap;

    transition:
            transform .2s ease,
            opacity .2s ease,
            background-color .2s ease;
}

.hero-network__button:hover {
    transform: translateY(-1px);
}

.hero-network__button:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 4px;
}


/*
|--------------------------------------------------------------------------
| Primary button
|--------------------------------------------------------------------------
*/

.hero-network__button--primary {
    width: 320px;

    border: 0;

    background: #2ec17b;

    color: #ffffff;

    font-weight: 700;
}

.hero-network__button--primary:hover {
    background: #2ec17b;
}


/*
|--------------------------------------------------------------------------
| Secondary button
|--------------------------------------------------------------------------
*/

.hero-network__button--secondary {
    width: 196px;

    gap: 8px;

    border: 0;

    background: transparent;

    color: #ffffff;

    font-weight: 500;
}

.hero-network__button--secondary:hover {
    opacity: .78;
}

.hero-network__button-arrow {
    display: inline-flex;

    color: #2ec17b;

    font-size: 20px;
    font-weight: 500;
    line-height: 1;

    transform: translateY(-1px);
}


/*
|--------------------------------------------------------------------------
| Stats
|--------------------------------------------------------------------------
*/

.hero-network__stats {
    width: 1200px;
    max-width: 1200px;

    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));

    gap: 24px;

    margin-top: 48px;
}

.hero-network__stat {
    min-width: 0;
}

.hero-network__stat-value {
    font-family: "Manrope", sans-serif;
    font-size: 32px;
    font-weight: 400;
    font-style: normal;
    line-height: 100%;
    letter-spacing: 0;

    white-space: nowrap;

    background: linear-gradient(
            101.11deg,
            #00acd0 -12.65%,
            #91c73e 132.38%
    );

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

    color: transparent;
}

.hero-network__stat-label {
    margin-top: 8px;

    font-family: "Manrope", sans-serif;
    font-size: 16px;
    font-weight: 500;
    font-style: normal;
    line-height: 130%;
    letter-spacing: 0;

    color: rgba(255, 255, 255, .62);
}


/*
|--------------------------------------------------------------------------
| Network visual
|--------------------------------------------------------------------------
*/

.hero-network__visual {
    position: absolute;

    top: 20px;
    right: -20px;

    width: 871px;
    height: 760px;

    z-index: 1;

    pointer-events: none;

    opacity: 1;

    will-change: transform;
}

.hero-network__svg {
    display: block;

    width: 100%;
    height: 100%;

    overflow: visible;
}


/*
|--------------------------------------------------------------------------
| Wires
|--------------------------------------------------------------------------
*/

.hero-network__wire {
    fill: none;

    stroke: rgba(112, 226, 205, .16);
    stroke-width: 1.15;

    vector-effect: non-scaling-stroke;
}

.hero-network__wire--soft {
    stroke: rgba(111, 232, 255, .08);
}


/*
|--------------------------------------------------------------------------
| Nodes
|--------------------------------------------------------------------------
*/

.hero-network__node-ring {
    fill: rgba(8, 15, 16, .72);

    stroke: rgba(143, 255, 224, .22);
    stroke-width: 1;

    vector-effect: non-scaling-stroke;
}

.hero-network__node-core {
    fill: rgba(196, 255, 238, .45);
}

.hero-network__node-core--active {
    fill: #aaffdb;

    filter:
            drop-shadow(
                    0 0 7px rgba(107, 255, 207, .65)
            );
}


/*
|--------------------------------------------------------------------------
| Halo
|--------------------------------------------------------------------------
*/

.hero-network__halo {
    fill: none;

    stroke: rgba(126, 243, 165, .18);
    stroke-width: 1;

    transform-box: fill-box;
    transform-origin: center;

    animation:
            hero-network-pulse
            5.5s
            ease-in-out
            infinite;
}

.hero-network__halo--delay {
    animation-delay: -2.7s;
}

@keyframes hero-network-pulse {

    0%,
    72%,
    100% {
        opacity: 0;
        transform: scale(.72);
    }

    80% {
        opacity: .5;
    }

    94% {
        opacity: 0;
        transform: scale(1.85);
    }
}


/*
|--------------------------------------------------------------------------
| Animated signals
|--------------------------------------------------------------------------
*/

.hero-network__dash {
    fill: none;

    stroke-width: 1.8;
    stroke-linecap: round;

    stroke-dasharray: 18 1100;
    stroke-dashoffset: 0;

    opacity: .9;

    filter:
            drop-shadow(
                    0 0 5px rgba(91, 243, 203, .4)
            );

    animation:
            hero-network-travel
            8.6s
            linear
            infinite;
}

.hero-network__dash--two {
    animation-duration: 11.2s;
    animation-delay: -5.3s;

    opacity: .65;
}

.hero-network__dash--three {
    animation-duration: 9.4s;
    animation-delay: -2.2s;

    opacity: .55;
}

@keyframes hero-network-travel {
    to {
        stroke-dashoffset: -1118;
    }
}


/*
|--------------------------------------------------------------------------
| Orbit
|--------------------------------------------------------------------------
*/

.hero-network__orbit {
    fill: none;

    stroke: rgba(114, 244, 204, .09);

    stroke-width: 1;

    stroke-dasharray: 2 12;

    transform-origin: 435px 380px;

    animation:
            hero-network-rotate
            34s
            linear
            infinite;
}

.hero-network__orbit--reverse {
    animation-direction: reverse;
    animation-duration: 47s;

    opacity: .55;
}

@keyframes hero-network-rotate {

    to {
        transform: rotate(360deg);
    }
}


/*
|--------------------------------------------------------------------------
| Micro points
|--------------------------------------------------------------------------
*/

.hero-network__micro {
    fill: rgba(127, 255, 218, .35);

    animation:
            hero-network-blink
            4.8s
            ease-in-out
            infinite;
}

.hero-network__micro:nth-of-type(2n) {
    animation-delay: -2s;
}

@keyframes hero-network-blink {

    0%,
    100% {
        opacity: .2;
    }

    50% {
        opacity: .85;
    }
}


/*
|--------------------------------------------------------------------------
| SVG labels
|--------------------------------------------------------------------------
*/

.hero-network__ghost-label {
    fill: rgba(180, 231, 220, .32);

    font-family: "Manrope", sans-serif;
    font-size: 10px;

    letter-spacing: .16em;
}


/*
|--------------------------------------------------------------------------
| Grain
|--------------------------------------------------------------------------
*/

.hero-network__grain {
    position: absolute;
    inset: 0;

    z-index: 6;

    pointer-events: none;

    opacity: .14;

    background-image:
            url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='hero-noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23hero-noise)' opacity='.17'/%3E%3C/svg%3E");

    mix-blend-mode: soft-light;
}


/*
|--------------------------------------------------------------------------
| Hint
|--------------------------------------------------------------------------
*/

.hero-network__hint {
    position: absolute;

    right: 24px;
    bottom: 22px;

    z-index: 10;

    color: rgba(255, 255, 255, .28);

    font-family: "Manrope", sans-serif;
    font-size: 11px;
    font-weight: 400;
    line-height: 1;

    letter-spacing: .06em;
}


/*
|--------------------------------------------------------------------------
| Gutenberg editor
|--------------------------------------------------------------------------
*/

.editor-styles-wrapper .hero-network {
    width: 100%;
}


/*
|--------------------------------------------------------------------------
| Large tablet
|--------------------------------------------------------------------------
*/

@media (max-width: 1280px) {

    .hero-network {
        padding-inline: 72px;
    }

    .hero-network__copy {
        width: min(680px, 100%);
        max-width: 680px;
        flex-basis: min(680px, 100%);
    }

    .hero-network__title,
    .hero-network__description,
    .hero-network__stats {
        width: 100%;
        max-width: 100%;
    }

    .hero-network__title,
    .hero-network__title-main,
    .hero-network__accent {
        font-size: 52px;
    }

    .hero-network__visual {
        right: -180px;
        transform: scale(.9);
        transform-origin: center right;
    }

}


/*
|--------------------------------------------------------------------------
| Tablet
|--------------------------------------------------------------------------
*/

@media (max-width: 1100px) {

    .hero-network {
        min-height: 760px;

        padding-inline: 48px;
    }

    .hero-network__inner {
        height: 760px;
    }

    .hero-network__copy {
        width: 620px;
        max-width: 620px;
        flex-basis: 620px;
    }

    .hero-network__title,
    .hero-network__title-main,
    .hero-network__accent {
        font-size: 48px;
    }

    .hero-network__description {
        font-size: 18px;
    }

    .hero-network__visual {
        right: -300px;
        transform: scale(.8);
    }

    .hero-network__stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));

        row-gap: 28px;
    }

}


/*
|--------------------------------------------------------------------------
| Mobile / small tablet
|--------------------------------------------------------------------------
*/

@media (max-width: 860px) {

    .hero-network {
        min-height: 100svh;

        padding-inline: 24px;

        align-items: flex-start;
    }

    .hero-network__inner {
        height: auto;
        min-height: 100svh;

        display: block;

        padding-top: 56px;
        padding-bottom: 64px;
    }

    .hero-network__copy {
        width: 100%;
        max-width: 100%;
    }

    .hero-network__title,
    .hero-network__description,
    .hero-network__stats {
        width: 100%;
        max-width: 100%;
    }

    .hero-network__visual {
        top: 250px;
        right: -350px;

        width: 700px;
        height: auto;

        opacity: .48;

        transform: translate3d(0, 0, 0) !important;
    }

    .hero-network__hint {
        display: none;
    }

}


/*
|--------------------------------------------------------------------------
| Mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 640px) {

    .hero-network {
        padding-inline: 20px;
    }

    .hero-network__inner {
        padding-top: 36px;
        padding-bottom: 48px;
    }

    .hero-network__eyebrow {
        margin-bottom: 22px;

        font-size: 11px;
    }

    .hero-network__categories {
        gap: 4px;
    }

    .hero-network__category {
        min-height: 31px;

        padding: 4px 8px;

        font-size: 11px;
    }



    .hero-network__title,
    .hero-network__title-main,
    .hero-network__accent {
        font-size: clamp(32px, 11.5vw, 36px);
        line-height: 115%;
    }

    .hero-network__description {
        margin-top: 22px;

        font-size: 16px;
        line-height: 150%;
    }

    .hero-network__actions {
        flex-direction: column;
        align-items: stretch;

        gap: 12px;

        margin-top: 28px;
    }

    .hero-network__button--primary,
    .hero-network__button--secondary {
        width: 100%;
    }

    .hero-network__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 28px 20px;

        margin-top: 40px;
    }

    .hero-network__stat-value {
        font-size: 26px;
    }

    .hero-network__stat-label {
        font-size: 14px;
    }

    .hero-network__visual {
        top: 360px;
        right: -330px;

        width: 620px;

        opacity: .4;
    }

}


/*
|--------------------------------------------------------------------------
| Very small screens
|--------------------------------------------------------------------------
*/

@media (max-width: 420px) {

    .hero-network__stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-network__visual {
        right: -380px;
    }

}


/*
|--------------------------------------------------------------------------
| Reduced motion
|--------------------------------------------------------------------------
*/

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

    .hero-network *,
    .hero-network *::before,
    .hero-network *::after {
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }

    .hero-network__visual {
        transform: none !important;
    }
}

