/* Premium page effects — visibly on, not just smudges. Loads after
   profile-2.css on profile pages. */

/* glow: the avatar breathes a red halo, the handle glows softly */
body.effect-glow .profile-avatar-wrap::before {
    content: '';
    position: absolute;
    inset: -16px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(196, 30, 30, .45) 0%, rgba(196, 30, 30, 0) 68%);
    animation: glow-breathe 4s ease-in-out infinite;
    z-index: 0;
    pointer-events: none;
}

body.effect-glow .profile-avatar-img,
body.effect-glow .profile-avatar { position: relative; z-index: 1; }

body.effect-glow .profile-handle {
    text-shadow: 0 0 26px rgba(196, 30, 30, .35);
}

@keyframes glow-breathe {
    0%, 100% { opacity: .5; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.07); }
}

/* shimmer: a light sweeps across the avatar on top of the existing pulse */
body.effect-shimmer .profile-avatar-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: linear-gradient(115deg,
        transparent 32%, rgba(255, 255, 255, .26) 50%, transparent 68%);
    background-size: 220% 100%;
    animation: sheen-sweep 3s linear infinite;
    z-index: 2;
    pointer-events: none;
}

@keyframes sheen-sweep {
    0% { background-position: 180% 0; }
    100% { background-position: -80% 0; }
}

/* scanline: CRT lines roll across the whole page, links keep their scan too */
body.effect-scanline::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 999;
    pointer-events: none;
    background: repeating-linear-gradient(
        0deg,
        transparent 0, transparent 3px,
        rgba(196, 30, 30, .055) 3px, rgba(196, 30, 30, .055) 4px
    );
}