/* =========================================================
   HERO VISUAL
   ========================================================= */

.hero-visual {
    position: relative;
    width: 100%;
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
}

/* Main visual panel */

.network-panel {
    position: relative;
    width: min(100%, 520px);
    height: 390px;
    overflow: hidden;
    border: 1px solid rgba(30, 65, 90, 0.16);
    border-radius: 24px;
    background:
        radial-gradient(
            circle at 50% 45%,
            rgba(35, 145, 150, 0.10),
            transparent 48%
        ),
        #f7fafb;
    box-shadow:
        0 24px 60px rgba(20, 50, 65, 0.10);
}

/* Header */

.network-panel-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 22px;

    border-bottom: 1px solid rgba(30, 65, 90, 0.10);
}

.network-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #31566a;
}

.network-status {
    display: flex;
    align-items: center;
    gap: 7px;

    font-size: 11px;
    color: #607784;
}

.live-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #3c9b96;
}
.research-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #3c9b96;
    display: inline-block;
}

/* Network graphic */

.network-graphic {
    position: absolute;
    left: 50%;
    top: 55%;
    width: 340px;
    height: 240px;
    transform: translate(-50%, -50%);
}

/* Nodes */

.node {
    position: absolute;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #3c8f98;
    box-shadow: 0 0 0 5px rgba(60, 143, 152, 0.10);
    z-index: 3;
}

/* Node positions */

.node-1 { left: 45px;  top: 105px; }
.node-2 { left: 105px; top: 45px; }
.node-3 { left: 175px; top: 80px; }
.node-4 { left: 250px; top: 38px; }
.node-5 { left: 285px; top: 130px; }
.node-6 { left: 205px; top: 180px; }
.node-7 { left: 115px; top: 165px; }
.node-8 { left: 20px;  top: 185px; }

/* Edges */

.edge {
    position: absolute;
    height: 1px;
    background: rgba(54, 103, 118, 0.30);
    transform-origin: left center;
    z-index: 1;
}

/* edge helper */

.edge-1 {
    width: 85px;
    left: 55px;
    top: 112px;
    transform: rotate(-38deg);
}

.edge-2 {
    width: 80px;
    left: 115px;
    top: 52px;
    transform: rotate(27deg);
}

.edge-3 {
    width: 83px;
    left: 185px;
    top: 87px;
    transform: rotate(-29deg);
}

.edge-4 {
    width: 82px;
    left: 258px;
    top: 48px;
    transform: rotate(59deg);
}

.edge-5 {
    width: 88px;
    left: 288px;
    top: 137px;
    transform: rotate(148deg);
}

.edge-6 {
    width: 95px;
    left: 212px;
    top: 187px;
    transform: rotate(184deg);
}

.edge-7 {
    width: 100px;
    left: 122px;
    top: 172px;
    transform: rotate(189deg);
}

.edge-8 {
    width: 115px;
    left: 28px;
    top: 192px;
    transform: rotate(-40deg);
}

/* Caption */

.network-panel-caption {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 20px;

    display: flex;
    flex-direction: column;
    gap: 5px;
}

.network-panel-caption strong {
    font-size: 15px;
    font-weight: 650;
    color: #183b4d;
}

.network-panel-caption span {
    font-size: 12px;
    color: #718590;
}

/* =========================================================
   FLOATING RESEARCH THEMES
   ========================================================= */

.hero-stat {
    position: absolute;

    display: flex;
    flex-direction: column;
    gap: 4px;

    padding: 14px 17px;

    background: rgba(255,255,255,0.96);
    border: 1px solid rgba(30,65,90,0.12);
    border-radius: 13px;

    box-shadow: 0 12px 30px rgba(20,50,65,0.09);

    backdrop-filter: blur(8px);

    z-index: 5;
}

.hero-stat strong {
    font-size: 13px;
    color: #1d4658;
}

.hero-stat span {
    font-size: 10px;
    line-height: 1.45;
    color: #718590;
}

/* Positions */

.stat-a {
    top: 70px;
    left: 0;
}

.stat-b {
    right: 0;
    top: 185px;
}

.stat-c {
    bottom: 55px;
    left: 15px;
}

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

@media (max-width: 1000px) {

    .hero-visual {
        min-height: 450px;
        padding: 25px;
    }

    .network-panel {
        height: 350px;
    }

    .stat-a {
        left: 5px;
    }

    .stat-b {
        right: 5px;
    }

    .stat-c {
        left: 5px;
        bottom: 25px;
    }
}

@media (max-width: 700px) {

    .hero-visual {
        min-height: auto;
        padding: 20px 10px 60px;
    }

    .network-panel {
        width: 100%;
        height: 330px;
    }

    .hero-stat {
        display: none;
    }

    .network-graphic {
        transform: translate(-50%, -50%) scale(0.82);
    }
}