.hero-living-system {
    position: relative;
    width: min(100%, 500px);
    margin-left: auto;
    isolation: isolate;
}

.hero-living-system__visual {
    position: relative;
    aspect-ratio: 1;
    border-radius: 50%;
}

.hero-living-system__svg {
    width: 100%;
    height: auto;
    overflow: visible;
}

.hero-living-system__orbit {
    transform-box: fill-box;
    transform-origin: center;
}

.hero-living-system__orbit circle:first-child {
    fill: none;
    stroke: rgba(15, 61, 46, .18);
    stroke-width: 1.1;
}

.hero-living-system__orbit--middle circle:first-child {
    stroke: rgba(15, 61, 46, .24);
    stroke-dasharray: 2 8;
}

.hero-living-system__orbit--inner circle:first-child {
    stroke: rgba(31, 107, 74, .22);
}

.hero-living-system__orbit--outer {
    animation: hero-system-orbit 48s linear infinite;
}

.hero-living-system__orbit--middle {
    animation: hero-system-orbit-reverse 62s linear infinite;
}

.hero-living-system__orbit--inner {
    animation: hero-system-orbit 74s linear infinite;
}

.hero-living-system__dot {
    fill: var(--color-primary-soft);
    stroke: var(--paper);
    stroke-width: 5;
    animation: hero-system-pulse 4.8s ease-in-out infinite;
}

.hero-living-system__dot--two,
.hero-living-system__dot--four {
    fill: var(--color-accent-bright);
    animation-delay: 1.5s;
}

.hero-living-system__dot--three,
.hero-living-system__dot--five {
    animation-delay: 2.7s;
}

.hero-living-system__signal {
    opacity: .62;
}

.hero-living-system__signal-line {
    fill: none;
    stroke: var(--color-accent-bright);
    stroke-linecap: round;
    stroke-width: 1.8;
    stroke-dasharray: 22 260;
    stroke-dashoffset: 280;
    animation: hero-system-signal 7.8s ease-in-out infinite;
}

.hero-living-system__signal-line--two {
    stroke: var(--color-primary-soft);
    animation-delay: 2.6s;
}

.hero-living-system__signal-line--three {
    animation-delay: 5.2s;
    opacity: .72;
}

.hero-living-system__core circle {
    fill: var(--color-primary);
    stroke: rgba(247, 248, 245, .92);
    stroke-width: 12;
    filter: drop-shadow(0 24px 34px rgba(8, 37, 28, .16));
}

.hero-living-system__core text {
    fill: var(--white);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 31px;
    font-weight: 800;
    letter-spacing: -.05em;
}

.hero-living-system__core .hero-living-system__core-label {
    fill: #bfd0c9;
    font-size: 11px;
    font-weight: 760;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.hero-living-system__node {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    color: #304a40;
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(212, 221, 214, .92);
    border-radius: 999px;
    box-shadow: 0 14px 34px rgba(8, 37, 28, .08);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .01em;
    backdrop-filter: blur(8px);
}

.hero-living-system__node::before {
    width: 7px;
    height: 7px;
    background: var(--color-accent-bright);
    border: 2px solid var(--color-primary);
    border-radius: 50%;
    content: '';
}

.hero-living-system__node--build {
    top: 13%;
    left: 9%;
}

.hero-living-system__node--care {
    top: 6%;
    right: 22%;
}

.hero-living-system__node--secure {
    top: 36%;
    right: -1%;
}

.hero-living-system__node--grow {
    right: 12%;
    bottom: 14%;
}

.hero-living-system__node--monitor {
    bottom: 9%;
    left: 15%;
}

.hero-living-system__node--maintain {
    top: 43%;
    left: -2%;
}

.hero-living-system__status {
    position: absolute;
    right: 4%;
    bottom: 2%;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 10px 13px;
    color: #496157;
    background: rgba(255, 255, 255, .9);
    border: 1px solid rgba(212, 221, 214, .95);
    border-radius: 999px;
    box-shadow: 0 14px 34px rgba(8, 37, 28, .08);
    font-size: .66rem;
    font-weight: 780;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.hero-living-system__status-light {
    width: 7px;
    height: 7px;
    background: var(--color-accent-bright);
    border-radius: 50%;
    box-shadow: 0 0 0 5px rgba(183, 215, 194, .52);
}

.hero-living-system__status-text {
    min-width: 124px;
    color: var(--color-primary);
    transition: opacity .22s ease, transform .22s ease;
}

.hero-living-system__status-text.is-changing {
    opacity: .28;
    transform: translateY(2px);
}

@keyframes hero-system-orbit {
    to {
        transform: rotate(360deg);
    }
}

@keyframes hero-system-orbit-reverse {
    to {
        transform: rotate(-360deg);
    }
}

@keyframes hero-system-pulse {
    0%,
    100% {
        opacity: .66;
        transform: scale(1);
    }

    45% {
        opacity: 1;
        transform: scale(1.18);
    }
}

@keyframes hero-system-signal {
    0%,
    58%,
    100% {
        opacity: 0;
        stroke-dashoffset: 280;
    }

    68% {
        opacity: .72;
    }

    84% {
        opacity: .1;
        stroke-dashoffset: 0;
    }
}

@media (max-width: 980px) {
    .hero-living-system {
        width: min(80vw, 500px);
        margin: 20px auto 0;
    }
}

@media (max-width: 720px) {
    .hero-living-system {
        width: min(96vw, 430px);
    }

    .hero-living-system__node {
        padding: 7px 10px;
        font-size: .66rem;
    }

    .hero-living-system__node--monitor,
    .hero-living-system__node--maintain {
        display: none;
    }

    .hero-living-system__node--secure {
        right: 0;
    }

    .hero-living-system__status {
        right: auto;
        bottom: 0;
        left: 4%;
        max-width: calc(100% - 32px);
        flex-wrap: wrap;
        row-gap: 4px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-living-system__orbit,
    .hero-living-system__dot,
    .hero-living-system__status-text {
        animation: none !important;
        transition: none !important;
    }

    .hero-living-system__signal,
    .hero-living-system__signal-line {
        display: none;
    }
}
