/* ════════════════════════════════════════════════════════════
   NEOMETRIX LOADER — MISSILE LOCK / TARGETING SYSTEM
   ════════════════════════════════════════════════════════════ */
.ld2 {
  position:fixed; inset:0; z-index:999999999;
  background:radial-gradient(ellipse at 50% 50%, #0c1a2e 0%, #050c18 60%, #030810 100%);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  opacity:1; transition:opacity 0.6s ease-out;
}
.ld2 .scanline {
  position:absolute; inset:0;
  background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(8,110,200,0.025) 2px, rgba(8,110,200,0.025) 3px);
  pointer-events:none;
}
.ld2 .amb-glow {
  position:absolute; width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, rgba(8,85,166,0.1) 0%, transparent 70%);
  animation:ambPulse 3s ease-in-out infinite;
}
@keyframes ambPulse { 0%,100%{transform:scale(1);opacity:0.6} 50%{transform:scale(1.15);opacity:1} }

.ld2 .crosshair-h, .ld2 .crosshair-v { position:absolute; }
.ld2 .crosshair-h { width:min(700px,95vw); height:1px; background:linear-gradient(90deg, transparent 5%, rgba(8,120,200,0.15) 30%, rgba(8,120,200,0.25) 50%, rgba(8,120,200,0.15) 70%, transparent 95%); }
.ld2 .crosshair-v { width:1px; height:min(700px,95vh); background:linear-gradient(180deg, transparent 5%, rgba(8,120,200,0.15) 30%, rgba(8,120,200,0.25) 50%, rgba(8,120,200,0.15) 70%, transparent 95%); }

.ld2 .target-ring { position:absolute; border-radius:50%; }
.ld2 .target-ring.r0 { width:min(520px,88vw); height:min(520px,88vw); border:1px solid rgba(8,110,200,0.07); }
.ld2 .target-ring.r0::before { content:''; position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg, transparent 0deg, rgba(8,110,200,0.12) 30deg, transparent 60deg); animation:sweepSlow 6s linear infinite; }
@keyframes sweepSlow { to{transform:rotate(360deg)} }
.ld2 .target-ring.r1 { width:min(420px,75vw); height:min(420px,75vw); border:1.5px solid rgba(8,120,200,0.18); }
.ld2 .target-ring.r2 { width:min(300px,55vw); height:min(300px,55vw); border:1px solid rgba(8,120,200,0.12); animation:targetSpin 20s linear infinite; }
.ld2 .target-ring.r3 { width:min(180px,35vw); height:min(180px,35vw); border:1px dashed rgba(8,120,200,0.15); animation:targetSpin 14s linear infinite reverse; }
@keyframes targetSpin { to{transform:rotate(360deg)} }

.ld2 .ticks { position:absolute; width:min(420px,75vw); height:min(420px,75vw); animation:targetSpin 30s linear infinite; }
.ld2 .ticks span { position:absolute; width:1.5px; height:16px; background:rgba(8,120,200,0.25); top:0; left:50%; transform-origin:0 min(210px,37.5vw); }
.ld2 .ticks span:nth-child(1){transform:rotate(0deg)} .ld2 .ticks span:nth-child(2){transform:rotate(30deg)} .ld2 .ticks span:nth-child(3){transform:rotate(60deg)} .ld2 .ticks span:nth-child(4){transform:rotate(90deg)} .ld2 .ticks span:nth-child(5){transform:rotate(120deg)} .ld2 .ticks span:nth-child(6){transform:rotate(150deg)} .ld2 .ticks span:nth-child(7){transform:rotate(180deg)} .ld2 .ticks span:nth-child(8){transform:rotate(210deg)} .ld2 .ticks span:nth-child(9){transform:rotate(240deg)} .ld2 .ticks span:nth-child(10){transform:rotate(270deg)} .ld2 .ticks span:nth-child(11){transform:rotate(300deg)} .ld2 .ticks span:nth-child(12){transform:rotate(330deg)}

.ld2 .ticks-minor { position:absolute; width:min(420px,75vw); height:min(420px,75vw); animation:targetSpin 30s linear infinite; }
.ld2 .ticks-minor span { position:absolute; width:1px; height:8px; background:rgba(8,120,200,0.12); top:0; left:50%; transform-origin:0 min(210px,37.5vw); }
.ld2 .ticks-minor span:nth-child(1){transform:rotate(15deg)} .ld2 .ticks-minor span:nth-child(2){transform:rotate(45deg)} .ld2 .ticks-minor span:nth-child(3){transform:rotate(75deg)} .ld2 .ticks-minor span:nth-child(4){transform:rotate(105deg)} .ld2 .ticks-minor span:nth-child(5){transform:rotate(135deg)} .ld2 .ticks-minor span:nth-child(6){transform:rotate(165deg)} .ld2 .ticks-minor span:nth-child(7){transform:rotate(195deg)} .ld2 .ticks-minor span:nth-child(8){transform:rotate(225deg)} .ld2 .ticks-minor span:nth-child(9){transform:rotate(255deg)} .ld2 .ticks-minor span:nth-child(10){transform:rotate(285deg)} .ld2 .ticks-minor span:nth-child(11){transform:rotate(315deg)} .ld2 .ticks-minor span:nth-child(12){transform:rotate(345deg)}

.ld2 .blip { position:absolute; width:5px; height:5px; border-radius:50%; background:rgba(30,140,255,0.6); box-shadow:0 0 8px rgba(30,140,255,0.4); animation:blipFade 3s ease-in-out infinite; }
.ld2 .blip:nth-child(1){top:22%;left:28%;animation-delay:0s}
.ld2 .blip:nth-child(2){top:68%;right:24%;animation-delay:0.8s}
.ld2 .blip:nth-child(3){top:30%;right:20%;animation-delay:1.6s}
.ld2 .blip:nth-child(4){bottom:25%;left:22%;animation-delay:2.2s}
.ld2 .blip:nth-child(5){top:44%;left:16%;animation-delay:0.4s}
.ld2 .blip:nth-child(6){bottom:32%;right:28%;animation-delay:1.2s}
@keyframes blipFade { 0%,100%{opacity:0;transform:scale(0.5)} 40%{opacity:1;transform:scale(1.2)} 70%{opacity:0.6;transform:scale(1)} }

.ld2 .lock-box { position:relative; width:120px; height:120px; }
.ld2 .lock-box .corner { position:absolute; width:22px; height:22px; border-color:#1e8cff; border-style:solid; border-width:0; animation:lockPulse 2s ease-in-out infinite; }
.ld2 .lock-box .corner:nth-child(1){top:-10px;left:-10px;border-top-width:2.5px;border-left-width:2.5px}
.ld2 .lock-box .corner:nth-child(2){top:-10px;right:-10px;border-top-width:2.5px;border-right-width:2.5px;animation-delay:0.15s}
.ld2 .lock-box .corner:nth-child(3){bottom:-10px;left:-10px;border-bottom-width:2.5px;border-left-width:2.5px;animation-delay:0.3s}
.ld2 .lock-box .corner:nth-child(4){bottom:-10px;right:-10px;border-bottom-width:2.5px;border-right-width:2.5px;animation-delay:0.45s}
@keyframes lockPulse { 0%,100%{opacity:0.5;transform:translate(0,0)} 50%{opacity:1;transform:translate(var(--dx),var(--dy))} }
.ld2 .lock-box .corner:nth-child(1){--dx:-4px;--dy:-4px} .ld2 .lock-box .corner:nth-child(2){--dx:4px;--dy:-4px} .ld2 .lock-box .corner:nth-child(3){--dx:-4px;--dy:4px} .ld2 .lock-box .corner:nth-child(4){--dx:4px;--dy:4px}

.ld2 .lock-box .nx-icon { position:absolute; inset:0; width:100%; height:100%; border-radius:0; filter:drop-shadow(0 0 35px rgba(30,140,255,0.5)); }

.ld2 .center { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:22px; }
.ld2 .wordmark { height:20px; opacity:0.85; filter:drop-shadow(0 0 10px rgba(8,85,166,0.3)); }
.ld2 .lock-text { font-size:12px; font-weight:700; letter-spacing:6px; text-transform:uppercase; color:#1e8cff; text-shadow:0 0 12px rgba(30,140,255,0.4); animation:lockBlink 0.8s steps(1) infinite; }
@keyframes lockBlink { 0%,55%{opacity:1} 56%,100%{opacity:0.3} }

.ld2 .bar-wrap { width:240px; height:3px; background:rgba(255,255,255,0.06); border-radius:3px; overflow:hidden; }
.ld2 .bar-fill { height:100%; width:0%; background:linear-gradient(90deg, #0855A6, #1e8cff); border-radius:3px; animation:barFill2 3s ease-in-out infinite; box-shadow:0 0 10px rgba(30,140,255,0.4); }
@keyframes barFill2 { 0%{width:0%} 70%{width:100%} 80%,100%{width:100%} }

.ld2 .hud-panel { position:absolute; font-size:9px; font-weight:500; letter-spacing:1.5px; color:rgba(30,140,255,0.35); line-height:2; text-transform:uppercase; font-family:'Montserrat',sans-serif; }
.ld2 .hud-panel.left { left:min(6%,50px); top:50%; transform:translateY(-50%); text-align:right; border-right:1px solid rgba(30,140,255,0.1); padding-right:12px; }
.ld2 .hud-panel.right { right:min(6%,50px); top:50%; transform:translateY(-50%); text-align:left; border-left:1px solid rgba(30,140,255,0.1); padding-left:12px; }

.ld2 .hud-bar { position:absolute; display:flex; gap:24px; font-size:9px; font-weight:600; letter-spacing:2px; color:rgba(30,140,255,0.25); text-transform:uppercase; font-family:'Montserrat',sans-serif; }
.ld2 .hud-bar.top { top:min(12%,80px); }
.ld2 .hud-bar.bottom { bottom:min(12%,80px); }
.ld2 .hud-bar span { padding:4px 0; border-bottom:1px solid rgba(30,140,255,0.08); }
.ld2 .hud-bar span.lit { color:rgba(30,140,255,0.6); border-bottom-color:rgba(30,140,255,0.3); }

.ld2 .coords { position:absolute; font-size:10px; letter-spacing:2px; color:rgba(30,140,255,0.3); font-weight:500; font-family:'Montserrat',sans-serif; }
.ld2 .coords.bl { bottom:min(18%,120px); left:min(6%,50px); }
.ld2 .coords.br { bottom:min(18%,120px); right:min(6%,50px); }

.ld2 .threat-box { position:absolute; padding:6px 14px; border:1px solid rgba(30,140,255,0.12); font-size:8px; font-weight:600; letter-spacing:2px; color:rgba(30,140,255,0.2); text-transform:uppercase; font-family:'Montserrat',sans-serif; }
.ld2 .threat-box.tl { top:min(18%,120px); left:min(6%,50px); border-left:2px solid rgba(30,140,255,0.3); }
.ld2 .threat-box.tr { top:min(18%,120px); right:min(6%,50px); border-right:2px solid rgba(30,140,255,0.3); text-align:right; }

.ld2 .range-mark { position:absolute; font-size:7px; color:rgba(30,140,255,0.2); font-weight:500; letter-spacing:1px; font-family:'Montserrat',sans-serif; }
.ld2 .range-mark.rm1 { top:calc(50% - min(130px,22vw)); left:calc(50% + 8px); }
.ld2 .range-mark.rm2 { top:calc(50% - min(200px,33vw)); left:calc(50% + 8px); }
.ld2 .range-mark.rm3 { top:calc(50% + min(125px,21vw)); left:calc(50% + 8px); }

@media(max-width:768px){
  .ld2 .hud-panel, .ld2 .hud-bar, .ld2 .coords, .ld2 .threat-box, .ld2 .range-mark { display:none; }
  .ld2 .lock-box { width:90px; height:90px; }
  .ld2 .wordmark { height:16px; }
  .ld2 .bar-wrap { width:180px; }
  .ld2 .lock-text { font-size:10px; letter-spacing:4px; }
}
