/* CDV MVP TROPHY V1 START */

/* =========================================================
   TROPHÉE MVP — INTÉGRATION INTERNE V2
========================================================= */

/*
Le contenu reste obligatoirement contenu dans la vignette.
Cela empêche l'ancien projecteur lumineux de traverser
toute la page.
*/

.world-champion-card {

    position:
        relative !important;

    overflow:
        hidden !important;

    margin-top:
        0 !important;

    isolation:
        isolate !important;

}


/* Neutralisation de l'ancien dessin de couronne. */

.world-champion-crown.world-champion-trophy,
.world-champion-crown.world-champion-trophy::before,
.world-champion-crown.world-champion-trophy::after {

    content: none !important;
    display: none !important;

    background: none !important;
    background-image: none !important;

    box-shadow: none !important;
    filter: none !important;

    opacity: 0 !important;

    mix-blend-mode: normal !important;

    animation: none !important;

}


/* =========================================================
   ZONE DU TROPHÉE
========================================================= */

.world-champion-card
.world-champion-trophy {

    position:
        absolute !important;

    z-index:
        12 !important;

    top:
        12px !important;

    left:
        50% !important;

    width:
        140px !important;

    height:
        140px !important;

    display:
        grid !important;

    place-items:
        center !important;

    pointer-events:
        none !important;

    transform:
        translateX(-50%) !important;

    isolation:
        isolate !important;

}


/* =========================================================
   IMAGE DU TROPHÉE
========================================================= */

.world-champion-trophy-image {

    position:
        relative;

    z-index:
        5;

    display:
        block;

    width:
        126px;

    height:
        126px;

    max-width:
        none;

    object-fit:
        contain;

    object-position:
        center;

    transform-origin:
        50% 70%;

    filter:

        drop-shadow(
            0 6px 4px
            rgba(0, 0, 0, .42)
        )

        drop-shadow(
            0 0 7px
            rgba(101, 194, 255, .48)
        )

        drop-shadow(
            0 0 16px
            rgba(140, 105, 255, .33)
        )

        drop-shadow(
            0 0 25px
            rgba(255, 194, 100, .18)
        );

    animation:
        cdvMvpTrophyFloatV2
        5s
        cubic-bezier(.42, 0, .24, 1)
        infinite;

}


/* =========================================================
   AURA CONTRÔLÉE
========================================================= */

.world-champion-trophy-aura {

    position:
        absolute;

    z-index:
        1;

    left:
        50%;

    top:
        50%;

    width:
        78px;

    height:
        78px;

    border-radius:
        50%;

    background:

        radial-gradient(
            circle,
            rgba(255, 218, 134, .55) 0%,
            rgba(149, 112, 255, .34) 36%,
            rgba(74, 181, 255, .18) 58%,
            transparent 76%
        );

    filter:
        blur(15px);

    transform:
        translate(-50%, -50%);

    opacity:
        .64;

    animation:
        cdvMvpTrophyAuraV2
        4s
        ease-in-out
        infinite;

}


/*
Petit halo vertical limité à l'intérieur de la vignette.
Aucun faisceau ne peut maintenant sortir de la carte.
*/

.world-champion-trophy-aura::before {

    content:
        "";

    position:
        absolute;

    left:
        50%;

    top:
        44%;

    width:
        68px;

    height:
        108px;

    border-radius:
        50%;

    background:
        linear-gradient(
            180deg,
            rgba(255, 226, 151, .18),
            rgba(124, 104, 255, .10) 48%,
            transparent 88%
        );

    filter:
        blur(16px);

    transform:
        translateX(-50%);

}


/* Onde énergétique discrète. */

.world-champion-trophy-aura::after {

    content:
        "";

    position:
        absolute;

    inset:
        -24px;

    border:
        1px solid
        rgba(148, 191, 255, .16);

    border-radius:
        50%;

    opacity:
        0;

    animation:
        cdvMvpTrophyWaveV2
        4.6s
        ease-out
        infinite;

}


/* =========================================================
   ORBITES DU TROPHÉE
========================================================= */

.world-champion-trophy-orbit {

    position:
        absolute;

    z-index:
        3;

    left:
        50%;

    top:
        54%;

    border-radius:
        50%;

    pointer-events:
        none;

}

.world-champion-trophy-orbit.orbit-one {

    width:
        124px;

    height:
        40px;

    border:
        1px solid
        rgba(114, 201, 255, .22);

    box-shadow:
        0 0 10px
        rgba(90, 175, 255, .12);

    transform:
        translate(-50%, -50%)
        rotate(-10deg);

    animation:
        cdvMvpOrbitOneV2
        10s
        linear
        infinite;

}

.world-champion-trophy-orbit.orbit-two {

    width:
        105px;

    height:
        52px;

    border:
        1px solid
        rgba(255, 197, 100, .14);

    box-shadow:
        0 0 9px
        rgba(255, 191, 92, .09);

    transform:
        translate(-50%, -50%)
        rotate(14deg);

    animation:
        cdvMvpOrbitTwoV2
        13s
        linear
        infinite reverse;

}


/* =========================================================
   REFLET QUI TRAVERSE LE TROPHÉE
========================================================= */

.world-champion-trophy-image {

    --cdv-trophy-shine:
        0;

}

.world-champion-trophy::after {

    content:
        "" !important;

    position:
        absolute !important;

    z-index:
        7 !important;

    top:
        10% !important;

    left:
        -18% !important;

    width:
        18px !important;

    height:
        74% !important;

    border:
        0 !important;

    border-radius:
        50% !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255, 255, 255, .58),
            transparent
        ) !important;

    box-shadow:
        none !important;

    filter:
        blur(4px) !important;

    opacity:
        0;

    transform:
        rotate(17deg);

    mix-blend-mode:
        screen;

    animation:
        cdvMvpTrophyShineV2
        7s
        ease-in-out
        infinite;

}


/* =========================================================
   RÉORGANISATION INTERNE DE LA CARTE
========================================================= */

.world-champion-honor-inner {

    position:
        relative;

    z-index:
        4;

    overflow:
        visible !important;

    padding-top:
        148px !important;

}


/*
Les particules restent dans les limites de la vignette,
contrairement au précédent faisceau.
*/

.world-honor-particles {

    position:
        absolute !important;

    inset:
        0 !important;

    overflow:
        hidden !important;

    border-radius:
        inherit;

    pointer-events:
        none;

}

.world-honor-particles span {

    box-shadow:

        0 0 7px
        rgba(109, 204, 255, .55),

        0 0 12px
        rgba(158, 109, 255, .28) !important;

}


/* =========================================================
   ÉCLAIRAGE INTERNE DE LA CARTE
========================================================= */

.world-champion-card::before {

    content:
        "" !important;

    position:
        absolute !important;

    z-index:
        0 !important;

    inset:
        0 !important;

    width:
        auto !important;

    height:
        auto !important;

    border-radius:
        inherit !important;

    background:

        radial-gradient(
            circle at 50% 5%,
            rgba(139, 111, 255, .15),
            transparent 34%
        ),

        radial-gradient(
            circle at 50% 32%,
            rgba(255, 191, 91, .07),
            transparent 25%
        ) !important;

    filter:
        none !important;

    opacity:
        1 !important;

    transform:
        none !important;

    animation:
        cdvMvpCardLightV2
        5s
        ease-in-out
        infinite !important;

    pointer-events:
        none !important;

}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes cdvMvpTrophyFloatV2 {

    0%,
    100% {

        transform:
            translateY(0)
            rotate(-.3deg)
            scale(1);

    }

    48% {

        transform:
            translateY(-6px)
            rotate(.35deg)
            scale(1.018);

    }

    72% {

        transform:
            translateY(-3px)
            rotate(0deg)
            scale(1.008);

    }

}

@keyframes cdvMvpTrophyAuraV2 {

    0%,
    100% {

        opacity:
            .48;

        transform:
            translate(-50%, -50%)
            scale(.88);

    }

    50% {

        opacity:
            .82;

        transform:
            translate(-50%, -50%)
            scale(1.13);

    }

}

@keyframes cdvMvpTrophyWaveV2 {

    0% {

        opacity:
            0;

        transform:
            scale(.76);

    }

    24% {

        opacity:
            .42;

    }

    100% {

        opacity:
            0;

        transform:
            scale(1.34);

    }

}

@keyframes cdvMvpOrbitOneV2 {

    from {

        transform:
            translate(-50%, -50%)
            rotate(-10deg)
            rotateZ(0deg);

    }

    to {

        transform:
            translate(-50%, -50%)
            rotate(-10deg)
            rotateZ(360deg);

    }

}

@keyframes cdvMvpOrbitTwoV2 {

    from {

        transform:
            translate(-50%, -50%)
            rotate(14deg)
            rotateZ(0deg);

    }

    to {

        transform:
            translate(-50%, -50%)
            rotate(14deg)
            rotateZ(360deg);

    }

}

@keyframes cdvMvpTrophyShineV2 {

    0%,
    60% {

        left:
            -18%;

        opacity:
            0;

    }

    67% {

        opacity:
            .56;

    }

    78% {

        left:
            104%;

        opacity:
            0;

    }

    100% {

        left:
            104%;

        opacity:
            0;

    }

}

@keyframes cdvMvpCardLightV2 {

    0%,
    100% {

        opacity:
            .72;

    }

    50% {

        opacity:
            1;

    }

}


/* =========================================================
   HOVER
========================================================= */

.world-champion-card:hover
.world-champion-trophy-image {

    filter:

        drop-shadow(
            0 7px 4px
            rgba(0, 0, 0, .45)
        )

        drop-shadow(
            0 0 9px
            rgba(103, 201, 255, .65)
        )

        drop-shadow(
            0 0 20px
            rgba(151, 102, 255, .43)
        )

        drop-shadow(
            0 0 30px
            rgba(255, 197, 100, .24)
        );

}


/* =========================================================
   VERSION MOBILE
========================================================= */

@media (max-width: 760px) {

    .world-champion-card
    .world-champion-trophy {

        top:
            10px !important;

        width:
            118px !important;

        height:
            118px !important;

    }

    .world-champion-trophy-image {

        width:
            108px;

        height:
            108px;

    }

    .world-champion-trophy-orbit.orbit-one {

        width:
            105px;

        height:
            34px;

    }

    .world-champion-trophy-orbit.orbit-two {

        width:
            90px;

        height:
            44px;

    }

    .world-champion-honor-inner {

        padding-top:
            125px !important;

    }

}


/* =========================================================
   ACCESSIBILITÉ
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .world-champion-trophy-image,
    .world-champion-trophy-aura,
    .world-champion-trophy-aura::after,
    .world-champion-trophy-orbit,
    .world-champion-trophy::after,
    .world-champion-card::before {

        animation:
            none !important;

    }

}



/* =========================================================
   CDV — AURA TROPHÉE SANS BLANC
========================================================= */

.world-champion-card
.world-champion-trophy-aura {

    background:
        radial-gradient(
            circle at center,

            rgba(120, 73, 255, .58) 0%,
            rgba(104, 66, 238, .43) 25%,
            rgba(79, 86, 224, .27) 43%,
            rgba(205, 52, 175, .13) 59%,
            transparent 76%
        ) !important;

    box-shadow:
        0 0 24px rgba(114, 84, 255, .23),
        0 0 48px rgba(157, 62, 255, .15)
        !important;

    filter:
        blur(15px) !important;

    mix-blend-mode:
        normal !important;

}

.world-champion-card
.world-champion-trophy-aura::before,
.world-champion-card
.world-champion-trophy-aura::after {

    background:
        radial-gradient(
            circle,
            rgba(117, 78, 255, .28),
            rgba(91, 70, 224, .14) 42%,
            transparent 72%
        ) !important;

    box-shadow:
        none !important;

    mix-blend-mode:
        normal !important;

}

/*
   Sécurité : aucun pseudo-élément du conteneur du trophée
   ne pourra recréer le balayage blanc.
*/

.world-champion-card
.world-champion-trophy::after {

    content:
        none !important;

    display:
        none !important;

    opacity:
        0 !important;

    background:
        none !important;

    box-shadow:
        none !important;

    animation:
        none !important;

    filter:
        none !important;

}

/* CDV MVP TROPHY V1 END */
