/*
 * Avatar Circles by Tonino Gerns
 * (C) 2026 Tonino Gerns - GNU GPL v3
 */

.tg-avatar-circles {
    --tg-avatar-size: 48px;
    --tg-avatar-overlap: 14px;
    --tg-avatar-ring-width: 2px;
    --tg-avatar-ring-color: #fff;
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.tg-avatar-circles > li {
    position: relative;
    z-index: var(--tg-avatar-z, 0);
    margin: 0;
    /* Keep the ring visible even when items wrap onto a new row */
    padding: var(--tg-avatar-ring-width) 0;
}

.tg-avatar-circles > li + li {
    margin-left: calc(var(--tg-avatar-overlap) * -1);
}

.tg-avatar-circles-image,
.tg-avatar-circles-more-circle {
    display: block;
    box-sizing: border-box;
    width: var(--tg-avatar-size);
    height: var(--tg-avatar-size);
    border-radius: 50%;
    box-shadow: 0 0 0 var(--tg-avatar-ring-width) var(--tg-avatar-ring-color);
}

.tg-avatar-circles-image {
    object-fit: cover;
}

.tg-avatar-circles-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: var(--tg-avatar-size);
    height: var(--tg-avatar-size);
    border-radius: 50%;
    box-shadow: 0 0 0 var(--tg-avatar-ring-width) var(--tg-avatar-ring-color);
    font-size: calc(var(--tg-avatar-size) * 0.34);
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    user-select: none;
}

.tg-avatar-circles-link {
    display: block;
    border-radius: 50%;
}

.tg-avatar-circles-more-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: calc(var(--tg-avatar-size) * 0.34);
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}

a.tg-avatar-circles-more-circle:hover,
a.tg-avatar-circles-more-circle:focus {
    text-decoration: none;
}

/* Keyboard focus: lift the focused avatar above its neighbors */
.tg-avatar-circles > li:focus-within,
.tg-avatar-circles > li[tabindex]:focus {
    z-index: 200;
}

.tg-avatar-circles a:focus-visible,
.tg-avatar-circles [tabindex]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: calc(var(--tg-avatar-ring-width) + 1px);
    border-radius: 50%;
}

/* Hover: Lift */
.tg-avatar-circles-hover-lift > li:hover {
    z-index: 200;
}

@media (prefers-reduced-motion: no-preference) {
    .tg-avatar-circles-hover-lift > li,
    .tg-avatar-circles-hover-fan > li {
        transition: transform 0.2s ease;
    }

    .tg-avatar-circles-hover-lift > li:hover,
    .tg-avatar-circles-hover-lift > li:focus-within,
    .tg-avatar-circles-hover-lift > li[tabindex]:focus {
        transform: translateY(-4px) scale(1.08);
    }

    /* Hover: Fan Out - spreads the whole group apart */
    .tg-avatar-circles-hover-fan:hover > li,
    .tg-avatar-circles-hover-fan:focus-within > li {
        transform: translateX(calc(var(--tg-avatar-i, 0) * var(--tg-avatar-overlap) * 0.7));
    }
}
