/* Ascending light projects the unchanged portrait; reverse is light, not an invented face. */
.hologram-stage{--holo-opacity:.47;perspective:1400px}
.portrait-perspective{transform-style:preserve-3d}
.portrait-turn{position:relative;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}
.portrait-float{position:relative;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(1px);animation:identity-float 7s ease-in-out infinite}
.portrait-reverse{position:absolute;inset:0;transform:rotateY(180deg) translateZ(1px);backface-visibility:hidden;-webkit-backface-visibility:hidden;pointer-events:none}
.reverse-silhouette{width:100%;height:100%;mask-image:url('./lf-presencia-20261011-r3-luis-mascara-transparente.png');mask-size:100% 100%;-webkit-mask-image:url('./lf-presencia-20261011-r3-luis-mascara-transparente.png');-webkit-mask-size:100% 100%;background:repeating-linear-gradient(0deg,#72eaff00 0 4px,#72eaff55 5px 6px),radial-gradient(ellipse at 50% 55%,#9ff7ff44,#2bb3e21a);filter:drop-shadow(0 0 14px #87ebff88)}
.light-column{inset:3% 2% 13%;z-index:0;clip-path:polygon(49% 100%,51% 100%,100% 0,0 0);background:linear-gradient(0deg,#c5fdffb3 0,#5eeaff3b 16%,#25c4ed0f 72%,transparent);filter:blur(6px);opacity:.8;animation:projector-light 5s ease-in-out infinite}
.projection-rays{position:absolute;left:50%;bottom:81px;z-index:1;width:1px;height:79%;pointer-events:none}
.projection-rays i{position:absolute;inset:0;width:2px;transform-origin:50% 100%;background:linear-gradient(0deg,#dbffff99,#79edff27 38%,transparent);filter:blur(1px);transform:rotate(-27deg)}
.projection-rays i:nth-child(2){transform:rotate(-15deg);opacity:.6}.projection-rays i:nth-child(3){transform:rotate(0deg);opacity:.35}.projection-rays i:nth-child(4){transform:rotate(15deg);opacity:.6}.projection-rays i:nth-child(5){transform:rotate(27deg)}
.projection-particles{position:absolute;inset:8% 4% 81px;z-index:3;pointer-events:none;overflow:hidden}
.projection-particles i{position:absolute;width:2px;height:5px;background:#bafaff;left:50%;bottom:0;box-shadow:0 0 7px #a9f7ff;border-radius:50%;opacity:0;animation:projector-rise var(--duration,6s) var(--delay,0s) linear infinite}
.projection-base{box-shadow:0 0 35px #73ecff77,inset 0 0 30px #88f8ff44;z-index:4;background:radial-gradient(ellipse,#c0fdff55,#1cacdd11 70%)}
.projection-core{position:absolute;inset:18px 34%;border-radius:50%;background:#e7ffff;box-shadow:0 0 15px 6px #8df7ffad,0 -15px 60px 10px #6ce5ff44}
.projector-orbit{position:absolute;left:50%;top:calc(100% - 81px);width:80%;aspect-ratio:1;z-index:3;border:1px dashed #72eaff70;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) rotateX(78deg);animation:projector-orbit 18s linear infinite}
.projection-sweep{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,transparent 40%,#a9f6ff55 49%,#e0ffff90 50%,transparent 60%);transform:translateY(110%);mix-blend-mode:screen;animation:projection-scan 12s 2.5s linear infinite;opacity:.5}
.hologram-stage[data-ready=true] .portrait-cutout{animation:projection-reveal 2.6s cubic-bezier(.18,.7,.22,1) both}
.hologram-stage[data-ready=true] .portrait-reverse{animation:projection-ready 2.6s step-end both}
.hologram-stage[data-light=off] .projection-sweep,.hologram-stage[data-light=off] .projection-rays,.hologram-stage[data-light=off] .projection-particles{opacity:0}
.hologram-stage[data-light=off] .light-column{opacity:.12;animation:none}
.advice-note{font-size:10px;color:#a9bdca;line-height:1.6;margin:0 0 18px}
@keyframes identity-float{0%,100%{transform:translateY(0) translateZ(1px)}50%{transform:translateY(-5px) translateZ(1px)}}
@keyframes projector-light{0%,100%{opacity:.55}50%{opacity:.82}}
@keyframes projector-rise{0%{transform:translate(0,0) scale(.4);opacity:0}12%{opacity:.65}85%{opacity:.4}100%{transform:translate(var(--drift,120px),-510px) scale(1);opacity:0}}
@keyframes projector-orbit{from{transform:translate(-50%,-50%) rotateX(78deg) rotateZ(0deg)}to{transform:translate(-50%,-50%) rotateX(78deg) rotateZ(360deg)}}
@keyframes projection-reveal{0%{clip-path:inset(100% 0 0);opacity:0}12%{opacity:1}100%{clip-path:inset(0);opacity:1}}
@keyframes projection-ready{0%{opacity:0}100%{opacity:1}}
@keyframes projection-scan{0%{transform:translateY(110%)}28%,100%{transform:translateY(-110%)}}
@media(max-width:700px){.projector-orbit{top:calc(100% - 73px)}.projection-rays{bottom:71px}.projection-particles{bottom:71px}.projection-base{bottom:49px}.projection-sweep{opacity:.4}}
@media(prefers-reduced-motion:reduce){.projection-rays,.projection-particles,.projection-sweep{display:none}.light-column,.projector-orbit,.portrait-float,.portrait-scan,.portrait-cutout,.portrait-reverse{animation:none!important}}
