/* SHC Points 0.1.44 — high-visibility Immortal rainbow-wave and classic postbit presentation */
.shcRankName {
    color: var(--shc-rank-glow, var(--rank-glow, var(--shc-rank-accent, var(--rank-accent, #20cfff)))) !important;
    font-weight: 900;
    text-shadow:
        0 1px 1px rgba(0, 0, 0, .98),
        0 0 3px rgba(0, 0, 0, .98),
        0 0 8px var(--shc-rank-glow, var(--rank-glow, #20cfff)),
        0 0 14px var(--shc-rank-glow, var(--rank-glow, #20cfff));
}

.shcRankName.isPulse {
    animation: shcRankNamePulse 2.35s ease-in-out infinite;
    will-change: filter, text-shadow;
}

@keyframes shcRankNamePulse {
    0%, 100% {
        filter: brightness(1);
        text-shadow:
            0 1px 1px rgba(0, 0, 0, .98),
            0 0 3px rgba(0, 0, 0, .98),
            0 0 8px var(--shc-rank-glow, var(--rank-glow, #20cfff)),
            0 0 14px var(--shc-rank-glow, var(--rank-glow, #20cfff));
    }
    50% {
        filter: brightness(1.34);
        text-shadow:
            0 1px 1px rgba(0, 0, 0, 1),
            0 0 4px rgba(0, 0, 0, 1),
            0 0 12px var(--shc-rank-glow, var(--rank-glow, #20cfff)),
            0 0 24px var(--shc-rank-glow, var(--rank-glow, #20cfff));
    }
}


/* Sonic Immortal receives a clean flowing rainbow with a light glow backdrop and a gentle whole-word wave. */
.shcRankName.isImmortalRainbow {
    position: relative;
    z-index: 0;
    display: inline-block;
    isolation: isolate;
    color: #ffffff !important;
    background-image: linear-gradient(
        90deg,
        #ff4f7b 0%,
        #ff9f45 12%,
        #ffe96d 24%,
        #76ff9b 36%,
        #59f4ff 48%,
        #74a8ff 60%,
        #8e73ff 72%,
        #d86cff 84%,
        #ff71c8 94%,
        #ff4f7b 100%
    );
    background-size: 240% 100%;
    background-position: 0% 50%;
    background-repeat: repeat-x;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: #ffffff;
    -webkit-text-stroke: 0;
    paint-order: stroke fill;
    text-shadow: none;
    filter: saturate(1.2) brightness(1.14);
    transform-origin: 50% 70%;
    animation:
        shcImmortalRainbowFlow 6.5s linear infinite,
        shcImmortalNameWave 3.4s ease-in-out infinite;
    will-change: background-position, transform;
}

.shcRankName.isImmortalRainbow::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: -.2em;
    right: -.2em;
    top: 50%;
    height: 1.02em;
    transform: translateY(-50%);
    border-radius: 999px;
    background: radial-gradient(ellipse at center,
        rgba(255,255,255,.24) 0%,
        rgba(127, 223, 255, .22) 28%,
        rgba(138, 114, 255, .18) 52%,
        rgba(255, 120, 201, .10) 72%,
        rgba(255,255,255,0) 100%);
    filter: blur(7px);
    opacity: .95;
    pointer-events: none;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .shcRankName.isImmortalRainbow {
        color: transparent !important;
        -webkit-text-fill-color: transparent;
    }
}

@keyframes shcImmortalRainbowFlow {
    from { background-position: 0% 50%; }
    to { background-position: 240% 50%; }
}

@keyframes shcImmortalNameWave {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    25% { transform: translateY(-1.4px) rotate(-.35deg); }
    50% { transform: translateY(.8px) rotate(.18deg); }
    75% { transform: translateY(-.8px) rotate(.32deg); }
}

.shcMemberRankIdentity {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    margin-inline-start: 7px;
    vertical-align: middle;
    white-space: nowrap;
}

.shcMemberRankIdentity__image,
.shcMemberRankIdentity__fallback {
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
}

.shcMemberRankIdentity__image {
    object-fit: contain;
    filter: drop-shadow(0 0 5px var(--shc-rank-glow, #20cfff));
}

.shcMemberRankIdentity__fallback {
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--shc-rank-accent, #20cfff);
    border-radius: 50%;
    color: var(--shc-rank-accent, #20cfff);
    background: rgba(0, 0, 0, .42);
    font-size: 8px;
    font-weight: 1000;
}

.shcMemberRankIdentity .shcRankName {
    max-width: 165px;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.1;
    letter-spacing: .035em;
    text-overflow: ellipsis;
    text-transform: uppercase;
}

.shcMemberRankMini > a,
.shcMemberRankMini > span {
    display: flex !important;
    align-items: center;
    gap: 8px;
    text-decoration: none !important;
}

.shcMemberRankMini__image,
.shcMemberRankMini__fallback {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
}

.shcMemberRankMini__image {
    object-fit: contain;
    filter: drop-shadow(0 0 7px var(--shc-rank-glow, #20cfff));
}

.shcMemberRankMini__fallback {
    display: grid;
    place-items: center;
    border: 1px solid var(--shc-rank-accent, #20cfff);
    border-radius: 50%;
    color: var(--shc-rank-accent, #20cfff);
    font-size: 9px;
    font-weight: 1000;
}

.shcMemberRankMini__copy {
    min-width: 0;
}

.shcMemberRankMini__copy small,
.shcMemberRankMini__copy strong {
    display: block;
}

.shcMemberRankMini__copy small {
    color: currentColor;
    opacity: .65;
    font-size: 8px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.shcMemberRankMini__copy strong {
    margin-top: 2px;
    font-size: 11px;
}


/* Full classic forum author-panel rank block. */
.shcPostbitRank {
    display: grid;
    width: 100%;
    margin: 10px 0 4px;
    place-items: center;
    text-align: center;
}

.shcPostbitRank__link {
    display: grid;
    width: 100%;
    max-width: 160px;
    place-items: center;
    gap: 4px;
    color: inherit !important;
    text-decoration: none !important;
}

.shcPostbitRank__image,
.shcPostbitRank__fallback {
    width: 112px;
    height: 112px;
}

.shcPostbitRank__image {
    object-fit: contain;
    filter: drop-shadow(0 0 9px var(--shc-rank-glow, #20cfff));
    filter: drop-shadow(0 0 8px var(--shc-rank-glow, #20cfff)) drop-shadow(0 0 16px color-mix(in srgb, var(--shc-rank-glow, #20cfff) 55%, transparent));
    transition: transform .2s ease, filter .2s ease;
}

.shcPostbitRank__link:hover .shcPostbitRank__image {
    transform: translateY(-2px) scale(1.03);
    filter: drop-shadow(0 0 12px var(--shc-rank-glow, #20cfff));
    filter: drop-shadow(0 0 10px var(--shc-rank-glow, #20cfff)) drop-shadow(0 0 22px color-mix(in srgb, var(--shc-rank-glow, #20cfff) 65%, transparent));
}

.shcPostbitRank__fallback {
    display: grid;
    place-items: center;
    border: 2px solid var(--shc-rank-accent, #20cfff);
    border-radius: 50%;
    color: var(--shc-rank-accent, #20cfff);
    background: rgba(0, 0, 0, .45);
    box-shadow: 0 0 12px var(--shc-rank-glow, #20cfff);
    box-shadow: 0 0 16px color-mix(in srgb, var(--shc-rank-glow, #20cfff) 55%, transparent);
    font-size: 18px;
    font-weight: 1000;
}

.shcPostbitRank__name {
    display: block;
    max-width: 100%;
    font-size: 18px;
    line-height: 1.08;
    letter-spacing: .015em;
    overflow-wrap: anywhere;
}

@supports selector(:has(*)) {
    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) {
        align-self: start;
        box-sizing: border-box;
        margin: 10px;
        padding: 20px 14px 12px;
        border: 1px solid rgba(255, 255, 255, .09);
        border-radius: 11px;
        background: linear-gradient(180deg, rgba(25, 33, 47, .98), rgba(16, 23, 35, .98));
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035), 0 12px 28px rgba(0, 0, 0, .2);
        text-align: center;
    }

    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) .ipsAvatarStack {
        margin-inline: auto;
    }

    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) .ipsEntry__username,
    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) .ipsEntry__group,
    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) .ipsEntry__group-image {
        text-align: center;
    }

    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) .ipsEntry__username {
        margin-top: 9px;
    }

    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) .ipsEntry__group {
        margin-top: 3px;
        opacity: .82;
    }

    .ipsEntry--post .ipsEntry__author-column:has(.shcPostbitRank) .ipsEntry__authorStats {
        width: 100%;
        margin-top: 13px;
        padding-top: 10px;
        border-top: 1px solid rgba(255, 255, 255, .07);
    }
}

@media (max-width: 600px) {
    .shcPostbitRank {
        margin-block: 7px 2px;
    }
    .shcPostbitRank__image,
    .shcPostbitRank__fallback {
        width: 78px;
        height: 78px;
    }
    .shcPostbitRank__name {
        font-size: 14px;
    }
    .shcMemberRankIdentity {
        gap: 4px;
        margin-inline-start: 5px;
    }
    .shcMemberRankIdentity__image,
    .shcMemberRankIdentity__fallback {
        width: 21px;
        height: 21px;
        flex-basis: 21px;
    }
    .shcMemberRankIdentity .shcRankName {
        max-width: 115px;
        font-size: 9px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .shcRankName.isPulse,
    .shcRankName.isImmortalRainbow {
        animation: none !important;
        filter: none !important;
        transform: none !important;
    }
    .shcRankName.isImmortalRainbow {
        background-position: 50% 50%;
        filter: saturate(1.18) brightness(1.12) !important;
    }
    .shcRankName.isImmortalRainbow::after {
        filter: blur(7px);
        opacity: .95;
    }
}

@media (forced-colors: active) {
    .shcRankName,
    .shcRankName.isImmortalRainbow {
        color: CanvasText !important;
        background: none !important;
        -webkit-text-fill-color: CanvasText !important;
        -webkit-text-stroke: 0 !important;
        text-shadow: none !important;
        filter: none !important;
        animation: none !important;
        transform: none !important;
    }
    .shcMemberRankIdentity__image,
    .shcMemberRankMini__image,
    .shcPostbitRank__image {
        filter: none;
    }
    .shcMemberRankIdentity__fallback,
    .shcMemberRankMini__fallback,
    .shcPostbitRank__fallback {
        border-color: CanvasText;
        color: CanvasText;
        background: Canvas;
    }
}

/* Point Store member-title entitlement: one clean rotating slot, separate from progression rank. */
.shcMemberTitles{--shc-title-cyan:#20cfff;display:inline-block;box-sizing:border-box;max-width:100%;color:#eaf8ff;vertical-align:middle}.shcMemberTitles__list{position:relative;display:block;max-width:100%}.shcMemberTitleItem{display:none;align-items:center;justify-content:center;position:absolute;inset:0;max-width:100%}.shcMemberTitleItem.isCurrent{display:flex}.shcMemberTitles.isEnhanced .shcMemberTitleItem{display:flex;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s linear .6s;pointer-events:none}.shcMemberTitles.isEnhanced .shcMemberTitleItem.isCurrent{opacity:1;visibility:visible;transition:opacity .6s ease;pointer-events:auto}.shcMemberTitleBadge.isText{display:inline-flex;align-items:center;justify-content:center;max-width:100%;border:1px solid rgba(32,207,255,.52);border-radius:8px;color:#f4fbff;background:linear-gradient(180deg,rgba(6,27,43,.97),rgba(2,13,22,.97));box-shadow:0 0 10px rgba(32,207,255,.08);font-weight:1000;line-height:1.15;letter-spacing:.02em;text-align:center;overflow-wrap:anywhere}.shcMemberTitleBadge.isImage{display:inline-flex;align-items:center;justify-content:center;max-width:100%;overflow:hidden}.shcMemberTitleBadge.isImage img{display:block;width:100%;height:100%;max-width:none;object-fit:fill;filter:drop-shadow(0 3px 6px rgba(0,0,0,.52))}.shcMemberTitleItem.isFeatured .shcMemberTitleBadge{filter:brightness(1.08)}
.shcMemberTitles--identity{width:124px;height:30px;margin-inline-start:7px}.shcMemberTitles--identity .shcMemberTitles__list{width:124px;height:30px}.shcMemberTitles--identity .shcMemberTitleBadge.isText{box-sizing:border-box;width:124px;height:30px;padding:4px 7px;font-size:11px;white-space:nowrap}.shcMemberTitles--identity .shcMemberTitleBadge.isImage{width:124px;height:30px}.shcMemberTitles--identity .shcMemberTitleBadge.isImage img{width:124px;height:30px}
.shcMemberTitles--postbit{display:block;width:100%;max-width:205px;height:52px;margin:9px auto 7px;text-align:center}.shcMemberTitles--postbit .shcMemberTitles__list{width:100%;height:52px}.shcMemberTitles--postbit .shcMemberTitleItem{width:100%}.shcMemberTitles--postbit .shcMemberTitleBadge.isText{box-sizing:border-box;width:195px;height:48px;padding:8px 12px;font-size:16px}.shcMemberTitles--postbit .shcMemberTitleBadge.isImage{width:195px;height:48px}.shcMemberTitles--postbit .shcMemberTitleBadge.isImage img{width:195px;height:48px}
.shcMemberTitles--mini{display:block;width:150px;height:36px;margin-top:7px}.shcMemberTitles--mini .shcMemberTitles__list{width:150px;height:36px}.shcMemberTitles--mini .shcMemberTitleBadge.isText{box-sizing:border-box;width:150px;height:34px;padding:5px 8px;font-size:12px}.shcMemberTitles--mini .shcMemberTitleBadge.isImage{width:150px;height:34px}.shcMemberTitles--mini .shcMemberTitleBadge.isImage img{width:150px;height:34px}
@media(max-width:650px){.shcMemberTitles--identity{display:block;width:124px;max-width:124px;margin:5px 0 0}.shcMemberTitles--postbit{max-width:195px}.shcMemberTitles--postbit .shcMemberTitleBadge.isText{font-size:15px}}
@media(prefers-reduced-motion:reduce){.shcMemberTitles.isEnhanced .shcMemberTitleItem{transition:none!important}}
