.h-tree {
    --ht_bg-article: #fff;
    --ht_border-radius: .3rem;
    --ht_border-color: #d9d9d9;
    --ht_border-style: solid;
    --ht_border-width: 1px;
    --ht_offset: 1.6rem;
    --ht_gap: 0.5rem;
    box-sizing: border-box;
    position: relative;
}
.h-tree [h-item] {
    position: relative;
}
.h-tree,
.h-tree [h-trunk] {
    display: block;
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.h-tree [h-item] + [h-item],
.h-tree [h-item] > [h-trunk] {
    margin-top: var(--ht_gap);
}
.h-tree [h-trunk] {
    margin-left: var(--ht_offset);
}

.h-tree [h-trunk] [h-article]::before {
    border-color: var(--ht_border-color);
    border-style: var(--ht_border-style);
    border-width: 0 0 var(--ht_border-width) var(--ht_border-width);
    bottom: 50%;
    content: '';
    display: block;
    height: var(--ht_track-height, calc(50% + var(--ht_gap)));
    left: calc((var(--ht_offset) - var(--ht_border-radius)) * -1);
    position: absolute;
    width: calc(var(--ht_offset) - var(--ht_border-radius));
}

.h-tree [h-trunk] > [h-item]:last-child > [h-article]::before {
    border-bottom-left-radius: var(--ht_border-radius);
}

.h-tree [h-trunk] [h-article]::after {
    background-color: var(--ht_bg-article);
    border-color: var(--ht_border-color);
    border-radius: 50%;
    border-style: var(--ht_border-style);
    border-width: 0 0 var(--ht_border-width) var(--ht_border-width);
    bottom: calc(50% - var(--ht_border-radius));
    content: '';
    display: block;
    height: calc(var(--ht_border-radius) * 2);
    left: calc((var(--ht_border-radius) + var(--ht_border-width) * 2) * -1);
    position: absolute;
    transform: rotate(45deg);
    width: calc(var(--ht_border-radius) * 2);
}

.h-tree [h-article] {
    align-items: center;
    background-color: var(--ht_bg-article);
    border-radius: var(--ht_border-radius);
    border: var(--ht_border-width) var(--ht_border-style) var(--ht_border-color);
    color: #4a4a4a;
    display: flex;
    gap: 0.8rem;
    padding: 0.4rem 0.6rem;
    position: relative;
    z-index: 1;
}
.h-tree [h-article-image] {
    flex-shrink: 0;
    width: 88px;
}
.h-tree [h-article-image] img {
    border-radius: 50%;
}
.h-tree [h-article-title] {
    color: #445f9f;
    display: block;
    font-size: 120%;
    line-height: 1.2;
    font-weight: normal;
}