/* Lux telemetry V48. Real DOM layer, versioned to avoid stale hashed CSS. */
@keyframes luxV48Signal {
  0%, 11%, 100% { opacity: .035; transform: translate3d(0,2px,0); }
  18%, 36% { opacity: .52; transform: translate3d(0,0,0); }
  44%, 65% { opacity: .10; }
  73%, 88% { opacity: .36; transform: translate3d(0,-1px,0); }
  94% { opacity: .08; }
}
@keyframes luxV48Radar {
  0%,100% { opacity:.08; transform:scale(.94); }
  35%,58% { opacity:.40; transform:scale(1); }
  76% { opacity:.16; transform:scale(1.03); }
}
.lux-telemetry-host { position:relative; }
.lux-telemetry-layer { position:absolute; inset:0; z-index:3; overflow:hidden; pointer-events:none; }
.lux-position .lux-telemetry-layer,
.lux-projects .lux-telemetry-layer,
.lux-formation .lux-telemetry-layer,
.lux-contact .lux-telemetry-layer { z-index:1; }
.lux-footer-exact .lux-telemetry-layer { z-index:0; }
.lux-telemetry-code {
  position:absolute; display:block; white-space:nowrap;
  color:rgba(205,211,217,.58);
  font-family:"Avenir Next",Avenir,Arial,sans-serif;
  font-size:7px; line-height:1; font-weight:500;
  letter-spacing:.18em; font-variant-numeric:tabular-nums;
  text-shadow:0 0 8px rgba(205,211,217,.08);
  animation:luxV48Signal 14s ease-in-out infinite;
}
.lux-telemetry-radar {
  position:absolute; width:54px; height:54px; border-radius:50%;
  border:1px solid rgba(205,211,217,.22);
  opacity:.22; animation:luxV48Radar 17s ease-in-out infinite;
}
.lux-telemetry-radar::before,.lux-telemetry-radar::after { content:""; position:absolute; border-radius:50%; inset:10px; border:1px solid rgba(205,211,217,.17); }
.lux-telemetry-radar::after { inset:24px; width:4px; height:4px; border:0; background:rgba(210,27,72,.68); box-shadow:0 0 0 4px rgba(210,27,72,.08); }
.lux-telemetry-radar i { position:absolute; left:50%; top:-7px; bottom:-7px; width:1px; background:linear-gradient(transparent,rgba(205,211,217,.17),transparent); }
.lux-telemetry-radar b { position:absolute; top:50%; left:-7px; right:-7px; height:1px; background:linear-gradient(90deg,transparent,rgba(205,211,217,.17),transparent); }
/* Hero must sit below its existing cherry frame and content. */
.lux-hero .lux-telemetry-layer { z-index:4; }
/* Formation standalone page */
body > .view .lux-telemetry-layer, .cards .lux-telemetry-layer, .menu .lux-telemetry-layer { z-index:0; }
.hero > :not(.lux-telemetry-layer), .pilot-shell > :not(.lux-telemetry-layer), .cards > :not(.lux-telemetry-layer), .menu > :not(.lux-telemetry-layer) { position:relative; z-index:1; }
@media (max-width:640px) {
  .lux-telemetry-code { font-size:6px; }
  .lux-telemetry-radar { width:42px; height:42px; }
  .lux-telemetry-code:nth-of-type(n+4) { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .lux-telemetry-code,.lux-telemetry-radar { animation:none !important; opacity:.20; }
}

/* Retire legacy telemetry layers so V48 is the single visible system. */
.lux-page .lux-signal-field { display:none !important; }
.lux-page .lux-hero-frame-outer::before,.lux-page .lux-hero-frame-outer::after,
.lux-page .lux-position-grid::before,.lux-page .lux-position-grid::after,
.lux-page .case-grid::before,.lux-page .case-grid::after,
.lux-page .lux-formation-grid::before,.lux-page .lux-formation-grid::after,
.lux-page .lux-contact-grid::before,.lux-page .lux-contact-grid::after,
.lux-page .lux-footer-exact::after,
.hero::before,.hero::after,.pilot-shell::after,.student-shell::before,.course-head::after,.cards::before { content:none !important; }
