/* DOUBLE-V V23 — reactive depth, presentation layer only */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .feature,.fixture-card,.dv-channel-card,.dv-signature,.dv-signature-match{transform-style:preserve-3d;backface-visibility:hidden;will-change:transform;}
 body:not(.dv22-still) .dv23-tilting{transform:perspective(850px) translateY(calc(-1 * var(--dv23-lift,0px))) rotateX(var(--dv23-rx,0deg)) rotateY(var(--dv23-ry,0deg)) scale(1.018)!important;transition:box-shadow .25s,border-color .25s!important;z-index:5;box-shadow:0 28px 64px #000d,0 10px 48px #883bce70,0 0 1px 1px #d5a4ffb0,inset 0 1px #fff5!important;}
 /* Le retour est calcule par le ressort JavaScript, et non une transition CSS. */
 body:not(.dv22-still) .dv23-tilting::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:3;background:radial-gradient(circle 240px at var(--dv23-px,50%) var(--dv23-py,50%),#f0d3ff4f 0%,#b876ff26 29%,transparent 75%);mix-blend-mode:screen;}
 /* Eviter de transformer les enfants : certains portent deja des animations. */
 body:not(.dv22-still) .dv23-tilting img{filter:drop-shadow(0 10px 10px #0009) drop-shadow(0 0 6px #d6b1ff77)!important;}
}
/* Backdrop: moving spotlights, perspective stadium lines */
#dv23-lights{pointer-events:none;position:fixed;inset:0;z-index:0;overflow:hidden;isolation:isolate;opacity:.7}
#dv23-lights::before,#dv23-lights::after{content:"";position:absolute;top:-45vh;width:38vw;height:130vh;filter:blur(45px);mix-blend-mode:screen;transform-origin:top center;animation:dv23-sweep 22s ease-in-out infinite alternate;background:linear-gradient(180deg,#ab5cfe50,transparent 77%);clip-path:polygon(49% 0,54% 0,100% 100%,0 100%)}
#dv23-lights::before{left:3vw}#dv23-lights::after{right:3vw;animation-delay:-10s;animation-direction:alternate-reverse}
@keyframes dv23-sweep{0%{transform:rotate(-12deg);opacity:.32}50%{opacity:.8}100%{transform:rotate(15deg);opacity:.46}}
body.dv22-still #dv23-lights{display:none}
/* Signature orbit: original DOUBLE-V shape, unobtrusive behind hero */
#dv23-orbit{position:absolute;right:7%;top:19%;width:min(38vw,400px);aspect-ratio:1;border:1px solid #ba84ff33;border-radius:50%;pointer-events:none;transform-style:preserve-3d;animation:dv23-orbit 28s linear infinite;z-index:1;box-shadow:0 0 80px #8729dc21,inset 0 0 60px #b269ff18}
#dv23-orbit::before,#dv23-orbit::after{content:"";position:absolute;inset:13%;border-radius:50%;border:1px solid #d5b0ff4b;transform:rotateY(62deg);box-shadow:0 0 22px #9e5fff33}
#dv23-orbit::after{inset:28%;transform:rotateX(67deg);border-color:#bb7cff77}
@keyframes dv23-orbit{from{transform:perspective(850px) rotateX(67deg) rotateZ(0)}to{transform:perspective(850px) rotateX(67deg) rotateZ(360deg)}}
body.dv22-still #dv23-orbit{animation:none}
@media(max-width:900px){#dv23-orbit{opacity:.45;top:38%;right:0;width:60vw}}
@media(max-width:760px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){#dv23-lights{display:none}#dv23-orbit{animation:none;opacity:.2}.dv23-tilting{transform:none!important}}

/* Ressort actif pendant le retour de la carte, meme sans survol. */
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){body:not(.dv22-still) .dv23-tilting{transform-origin:center center!important;}}
