/* ================================================================
   Profile Photo Component — profile-photo.css
   Reusable circular profile photo with ring, lock badge, skeleton.
   Ported from UserPhoto.as (AS3).
   Requires: profile-photo.js
   ================================================================ */

.nomo-photo-wrap {
    display: inline-block;
    position: relative;
}

.nomo-photo {
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 4px solid var(--nomo-blue);
    box-sizing: content-box;
    opacity: 0;
    transition: opacity 0.3s ease;
    position: relative;
    z-index: 1;
}
.nomo-photo.loaded {
    opacity: 1;
}

/* Skeleton pulse — shown until image loads */
.nomo-photo-wrap.skeleton .nomo-photo-bg {
    animation: nomoPhotoPulse 1.4s ease-in-out infinite;
}

.nomo-photo-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--panel-bg);
    border: 4px solid var(--nomo-blue);
    box-sizing: content-box;
}

@keyframes nomoPhotoPulse {
    0%, 100% { opacity: 0.4; }
    50%      { opacity: 1; }
}

/* Private lock badge */
.nomo-photo-lock {
    position: absolute;
    bottom: 14.6%;
    right: 14.6%;
    transform: translate(50%, 50%);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--nomo-blue);
    display: flex;
    align-items: center;
    justify-content: center;
}
.nomo-photo-lock svg {
    width: 14px;
    height: 14px;
    fill: #fff;
    stroke: none;
}

/* ── Size variants ── */

/* Small (comment avatars, 32px) — no ring, no lock */
.nomo-photo-wrap.nomo-photo-sm .nomo-photo {
    border: none;
}
.nomo-photo-wrap.nomo-photo-sm .nomo-photo-bg {
    border: none;
}

/* Centered container helper */
.nomo-photo-center {
    display: flex;
    justify-content: center;
}
