/* ── Animated line + dot decorations ── */

.hh-anim-h,
.hh-anim-v,
.hh-anim-br {
    position: absolute;
    pointer-events: none;
    z-index: 0;
}

.hh-anim-h {
    top: 70px;
    right: calc(100% - 300px);
    width: 35vw;
    height: 32px;
}

@media (max-width: 1024px) {
    .hh-anim-h {
        width: 40vw;
    }
}

@media (max-width: 1280px) {
    .hh-anim-h {
        top: 30px;
    }
}

.hh-anim-h .cf-line {
    position: absolute;
    top: 16px;
    left: 0;
    width: calc(100% - 50px);
    height: 1px;
    background: #374151;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 900ms cubic-bezier(0.65, 0, 0.35, 1);
}

.hh-anim-h .cf-dot {
    position: absolute;
    top: 50%;
    right: 0;
    width: 32px;
    height: 32px;
    margin-top: -16px;
    border-radius: 50%;
    background: #005EAD;
    opacity: 0;
    transform: scale(0.4);
    transition: opacity 400ms ease 700ms, transform 400ms ease 700ms;
}

.hh-anim-h.is-visible .cf-line {
    transform: scaleX(1);
}

.hh-anim-h.is-visible .cf-dot {
    opacity: 1;
    transform: scale(1);
}

.hh-anim-v {
    top: 0;
    bottom: 0;
    left: 40px;
    width: 1px;
}

@media (max-width: 1280px) {
    .hh-anim-v {
        left: -40px;
    }
}

.hh-anim-v .cf-line {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 1px;
    background: #767676;
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 900ms cubic-bezier(0.65, 0, 0.35, 1);
}

.hh-anim-v.is-visible .cf-line {
    transform: scaleY(1);
}

.hh-anim-br {
    bottom: 15%;
    left: calc(100% - 40px);
    width: 35vw;
    height: 32px;
}

.hh-anim-br .cf-line {
    position: absolute;
    top: 16px;
    right: 0;
    width: calc(100% - 50px);
    height: 1px;
    background: #374151;
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 900ms cubic-bezier(0.65, 0, 0.35, 1);
}

.hh-anim-br .cf-dot {
    position: absolute;
    top: 50%;
    left: 0;
    width: 32px;
    height: 32px;
    margin-top: -16px;
    border-radius: 50%;
    background: #62B9CC;
    opacity: 0;
    transform: scale(0.4);
    transition: opacity 400ms ease 700ms, transform 400ms ease 700ms;
}

.hh-anim-br.is-visible .cf-line {
    transform: scaleX(1);
}

.hh-anim-br.is-visible .cf-dot {
    opacity: 1;
    transform: scale(1);
}
