:root {
    color-scheme: dark;
}

.fashion-bg {
    background:
        linear-gradient(135deg, rgba(16, 16, 20, .94), rgba(20, 18, 30, .92)),
        url("https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1800&q=80") center/cover;
}

.photo-card {
    transform: translateZ(0);
}

.leader-crown {
    animation: crownPulse 1.8s ease-in-out infinite;
    filter: drop-shadow(0 0 18px rgba(251, 191, 36, .85));
}

.heart-pop {
    animation: heartPop .55s cubic-bezier(.2, 1.6, .4, 1);
}

.toast-enter {
    animation: toastIn .24s ease-out both;
}

.ranking-podium-card {
    animation: podiumIn .58s cubic-bezier(.2, .8, .2, 1) both;
    transform-origin: center bottom;
}

.ranking-podium-card:nth-child(2) {
    animation-delay: .08s;
}

.ranking-podium-card:nth-child(3) {
    animation-delay: .16s;
}

.vote-bump {
    animation: voteBump .75s cubic-bezier(.2, 1.4, .3, 1);
    color: #cf1f36;
}

.rank-updated {
    animation: rankUpdated .9s ease-out both;
}

.confetti-piece {
    pointer-events: none;
    position: fixed;
    top: -12px;
    z-index: 60;
    animation: confettiFall 1.7s linear forwards;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.brand-logo-shell {
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 18px 45px rgba(0, 0, 0, .22);
}

.brand-logo {
    object-fit: contain;
    mix-blend-mode: normal;
}

@keyframes crownPulse {
    0%, 100% {
        transform: translateX(-50%) scale(1) rotate(-2deg);
    }
    50% {
        transform: translateX(-50%) scale(1.14) rotate(2deg);
    }
}

@keyframes heartPop {
    0% { transform: scale(1); }
    45% { transform: scale(1.45); }
    100% { transform: scale(1); }
}

@keyframes voteBump {
    0% { transform: scale(1); }
    35% { transform: scale(1.28); }
    100% { transform: scale(1); }
}

@keyframes podiumIn {
    from {
        opacity: 0;
        transform: translateY(18px) scale(.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes rankUpdated {
    from {
        background-color: rgba(207, 31, 54, .08);
    }
    to {
        background-color: transparent;
    }
}

@keyframes toastIn {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes confettiFall {
    to {
        transform: translateY(110vh) rotate(540deg);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}
