/* Sheen, glare and vivid colours from the supplied Vanguard Holo reference. */
@property --gloss-x{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --gloss-y{syntax:'<percentage>';inherits:true;initial-value:35%}
@property --gl-angle{syntax:'<angle>';inherits:true;initial-value:125deg}
.cfv-holo-surface{position:relative;isolation:isolate;border-radius:inherit;--gl-x:var(--gloss-x,50%);--gl-y:var(--gloss-y,35%)}
.cfv-holo-vivid{filter:contrast(118%) saturate(125%) brightness(104%)!important}
.cfv-holo-sheen{position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:1;opacity:var(--holo-intensity,.72);mix-blend-mode:color-dodge;background:repeating-linear-gradient(var(--gl-angle,120deg),rgba(255,60,140,.45) 0%,rgba(255,170,20,.5) 12%,rgba(255,235,40,.5) 24%,rgba(50,240,140,.5) 36%,rgba(0,225,255,.55) 48%,rgba(150,90,255,.5) 60%,rgba(255,60,200,.45) 72%,rgba(255,60,140,.45) 84%),radial-gradient(circle at var(--gl-x,50%) var(--gl-y,35%),rgba(255,255,255,.85) 0%,rgba(255,255,255,.2) 18%,transparent 42%);background-size:200% 200%,160% 160%;animation:cfv-prismatic-sweep 6s ease-in-out infinite;contain:paint}
.cfv-holo-glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:1;mix-blend-mode:screen;opacity:var(--glare-opacity,.6);background:linear-gradient(115deg,transparent 15%,rgba(255,255,255,.08) 32%,rgba(255,255,255,.6) 47%,rgba(255,255,255,.9) 50%,rgba(255,255,255,.6) 53%,rgba(255,255,255,.08) 68%,transparent 85%),radial-gradient(circle at var(--gl-x,50%) var(--gl-y,35%),rgba(255,255,255,.9) 0%,rgba(255,255,255,.25) 20%,transparent 48%);background-size:260% 260%,140% 140%;animation:cfv-specular-sweep 4.5s ease-in-out infinite}
.cfv-holo-interactive{transform:perspective(1000px) rotateX(var(--holo-rx,0deg)) rotateY(var(--holo-ry,0deg));transition:transform .1s ease-out;transform-style:preserve-3d}
.foil-preview.holo-active{cursor:grab;touch-action:pan-y;transform-style:preserve-3d}
.collector-card:not(.foil-manual){animation:cfv-full-orbit 9s ease-in-out infinite}
.collector-stage{overflow:visible}
.foil-motion-paused .collector-card,.foil-motion-paused .cfv-holo-sheen,.foil-motion-paused .cfv-holo-glare,.foil-motion-paused .cfv-clan-glow{animation-play-state:paused!important}
.collector-gloss,.foil-shine,.foil-finish{display:none!important}
@keyframes cfv-full-orbit{0%,100%{transform:rotateX(-6deg) rotateY(-30deg);--gloss-x:12%;--gloss-y:32%;--gl-angle:90deg}50%{transform:rotateX(6deg) rotateY(30deg);--gloss-x:88%;--gloss-y:68%;--gl-angle:150deg}}
@keyframes cfv-prismatic-sweep{0%,100%{background-position:0% 20%,30% 30%}50%{background-position:100% 80%,70% 70%}}
@keyframes cfv-specular-sweep{0%{background-position:-80% 0%,50% 35%}50%{background-position:180% 100%,50% 35%}100%{background-position:-80% 0%,50% 35%}}
@media(prefers-reduced-motion:reduce){.collector-card:not(.foil-manual),.cfv-holo-sheen,.cfv-holo-glare,.cfv-clan-glow{animation:none!important}.cfv-holo-interactive{transition:none}}
.collector-front.cfv-holo-surface,.damage-card.cfv-holo-surface,.damage-card.foil-card,.damage-card.foil-active,.damage-card.holo-active{position:absolute!important}.collector-gyro{position:absolute;left:12px;bottom:12px;z-index:5;font-size:12px;padding:8px 12px}.damage-card>.cfv-clan-glow,.damage-card>.cfv-holo-sheen,.damage-card>.cfv-holo-glare{inset:0;border-radius:inherit}
