/*
 * dems mark — white logo + sweeping sheen strip (переливание).
 * No fade pulse, no purple glow, no rotation.
 */

.dems-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    line-height: 0;
    user-select: none;
    pointer-events: none;
    overflow: hidden;
}

.dems-mark__img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    opacity: 0.78;
}

/* Moving bright band, clipped to logo silhouette via mask */
.dems-mark__sheen {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        115deg,
        transparent 0%,
        transparent 38%,
        rgba(255, 255, 255, 0.15) 45%,
        rgba(255, 255, 255, 0.95) 50%,
        rgba(255, 255, 255, 0.15) 55%,
        transparent 62%,
        transparent 100%
    );
    background-size: 220% 100%;
    background-repeat: no-repeat;
    -webkit-mask-image: url("/static/svg/logo_dems_animated.svg?v=4");
    mask-image: url("/static/svg/logo_dems_animated.svg?v=4");
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    animation: dems-mark-sheen 2.4s ease-in-out infinite;
    pointer-events: none;
}

.dems-mark--hero {
    width: clamp(72px, 22vw, 108px);
    margin: 0 auto 28px;
}

.dems-mark--md { width: 72px; }
.dems-mark--sm { width: 44px; }

.dems-mark--spinner {
    width: 40px;
    height: 40px;
}

.dems-mark--spinner .dems-mark__img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.dems-mark--spinner .dems-mark__sheen {
    animation-duration: 1.6s;
}

@keyframes dems-mark-sheen {
    0% { background-position: 120% 0; }
    100% { background-position: -120% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .dems-mark__sheen {
        animation: none;
        opacity: 0;
    }
    .dems-mark__img {
        opacity: 1;
    }
}
