/* VITALS holo: mouse/touch/gyro reactive Prof (Superdesign "Holo-Tilt" + "Target Lock" drafts) */
.vt-screen{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;--dx:0;--dy:0;--sp:0;perspective:900px}
.vt-screen .vt-hero,.vt-screen .vt-shade,.vt-screen .vt-aura{transition:transform .25s cubic-bezier(.2,.7,.2,1);will-change:transform}
.vt-screen .vt-hero{transform:rotateX(var(--rx)) rotateY(var(--ry)) translate3d(calc(var(--dx)*14px),calc(var(--dy)*10px),40px);filter:contrast(1.3) brightness(calc(1.12 + var(--sp)*.25)) saturate(1.1) drop-shadow(calc(var(--dx)*-4px) 0 0 rgba(20,253,12,.45))}
.vt-screen .vt-aura{transform:translate3d(calc(var(--dx)*-10px),calc(var(--dy)*-8px),0) scale(1.04)}
.vt-screen .vt-shade{transform:translate3d(calc(var(--dx)*6px),calc(var(--dy)*4px),0)}
.vt-screen #vtGrid{transition:transform .4s ease-out;transform:translate3d(calc(var(--dx)*-18px),calc(var(--dy)*-6px),0) scale(1.06)}
.vt-glint{position:absolute;left:37%;top:28%;width:28%;height:10%;pointer-events:none;mix-blend-mode:screen;opacity:.85;background:radial-gradient(circle at calc(50% + var(--dx)*40%) calc(50% + var(--dy)*40%),rgba(220,255,210,.95) 0,rgba(20,253,12,.55) 9%,transparent 22%)}
.vt-glare{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity .3s;background:radial-gradient(circle 220px at var(--mx) var(--my),rgba(20,253,12,.16),transparent 70%)}
.vt-screen.holo-on .vt-glare{opacity:1}
.vt-scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,calc(.12 + var(--sp)*.3)) 0 1px,transparent 1px 3px)}
.vt-reticle{position:absolute;left:var(--mx);top:var(--my);width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid var(--pip);box-shadow:0 0 8px var(--pip);pointer-events:none;opacity:0;transition:opacity .2s}
.vt-reticle::before,.vt-reticle::after{content:"";position:absolute;background:var(--pip)}
.vt-reticle::before{top:50%;left:-8px;right:-8px;height:1px}.vt-reticle::after{left:50%;top:-8px;bottom:-8px;width:1px}
.vt-reticle span{position:absolute;left:42px;top:-4px;font-size:10px;letter-spacing:.12em;white-space:nowrap;text-shadow:0 0 6px var(--pip)}
.vt-screen.holo-on .vt-reticle{opacity:.85}
.vt-lock{position:absolute;pointer-events:none;opacity:0;transition:opacity .2s}
.vt-lock::before{content:"";position:absolute;inset:0;border:1px solid var(--pip);clip-path:polygon(0 0,14% 0,14% 2px,2px 2px,2px 14%,0 14%,0 0,86% 0,100% 0,100% 14%,calc(100% - 2px) 14%,calc(100% - 2px) 2px,86% 2px,86% 0,100% 86%,100% 100%,86% 100%,86% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 86%,100% 86%,14% 100%,0 100%,0 86%,2px 86%,2px calc(100% - 2px),14% calc(100% - 2px),14% 100%)}
.vt-lock b{position:absolute;top:-18px;left:0;font-size:11px;font-weight:normal;letter-spacing:.16em;background:#000;padding:0 4px;text-shadow:0 0 6px var(--pip)}
.vt-screen.locked .vt-lock{opacity:1}
.vt-screen.locked .vt-hero{animation:vtGlitch .35s steps(2) 1,vtFlick 7s infinite .35s}
@keyframes vtGlitch{0%{clip-path:inset(10% 0 60% 0);transform:translateX(-6px)}50%{clip-path:inset(55% 0 10% 0);transform:translateX(6px)}100%{clip-path:none}}
.vt-pulse{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid var(--pip);border-radius:50%;pointer-events:none;animation:vtPulse .7s ease-out forwards}
@keyframes vtPulse{to{transform:scale(9);opacity:0}}
@media (hover:none){.vt-reticle{display:none}}
@media (prefers-reduced-motion:reduce){.vt-hero,.vt-shade,.vt-aura,#vtGrid{transform:none!important;transition:none}.vt-reticle,.vt-glare,.vt-lock{display:none}}
