/*
  Luzstar shared motion layer
  Atmospheric movement stays behind content and respects reduced-motion settings.
*/

body.lz-motion {
  --lz-accent: 212, 175, 55;
  --lz-accent-soft: 255, 217, 138;
  --lz-pointer-x: 18%;
  --lz-pointer-y: 20%;
  --lz-pattern-a:
    linear-gradient(rgba(var(--lz-accent), .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--lz-accent), .045) 1px, transparent 1px);
  --lz-pattern-b:
    linear-gradient(112deg, transparent 0 46%, rgba(var(--lz-accent-soft), .055) 49%, transparent 52% 100%);
  --lz-size-a: 78px 78px, 78px 78px;
  --lz-size-b: 240px 240px;
  --lz-field-speed: 22s;
  --lz-section-tint: rgba(12, 12, 12, .26);
  isolation: isolate;
  background: transparent !important;
}

html {
  background: #0b0b0b;
}

body.lz-motion::before {
  content: "";
  position: fixed;
  inset: -18%;
  z-index: -1;
  pointer-events: none;
  background-image:
    radial-gradient(ellipse 42% 34% at var(--lz-pointer-x) var(--lz-pointer-y), rgba(var(--lz-accent), .13), transparent 72%),
    radial-gradient(ellipse 46% 38% at 82% 72%, rgba(var(--lz-accent-soft), .085), transparent 74%),
    var(--lz-pattern-a),
    var(--lz-pattern-b);
  background-size:
    auto,
    auto,
    var(--lz-size-a),
    var(--lz-size-b);
  background-position:
    0 0,
    0 0,
    0 0,
    -320px 0;
  animation: lzFieldFlow var(--lz-field-speed) linear infinite;
}

body.lz-motion::after {
  content: "";
  position: fixed;
  left: 50%;
  top: 50%;
  width: min(1050px, 90vw);
  aspect-ratio: 1;
  z-index: -1;
  pointer-events: none;
  border-radius: 50%;
  background: conic-gradient(from 0deg, transparent 0 20%, rgba(var(--lz-accent-soft), .07) 24%, transparent 29% 56%, rgba(var(--lz-accent), .055) 60%, transparent 66%);
  -webkit-mask-image: radial-gradient(circle, transparent 0 31%, #000 48%, transparent 72%);
  mask-image: radial-gradient(circle, transparent 0 31%, #000 48%, transparent 72%);
  animation: lzScannerOrbit 24s linear infinite;
}

body.lz-motion main > section:not(.stage):not(.home-intro),
body.lz-motion main > .section-dark {
  position: relative;
  isolation: isolate;
  background-color: rgba(9, 9, 9, .62) !important;
  background-image:
    radial-gradient(ellipse 42% 44% at 16% 18%, rgba(var(--lz-accent), .09), transparent 72%),
    radial-gradient(ellipse 44% 48% at 84% 78%, rgba(var(--lz-accent-soft), .055), transparent 74%),
    var(--lz-pattern-a),
    var(--lz-pattern-b) !important;
  background-size:
    auto,
    auto,
    var(--lz-size-a),
    var(--lz-size-b) !important;
  background-position:
    0 0,
    0 0,
    0 0,
    -320px 0 !important;
  background-attachment: fixed !important;
  background-blend-mode: screen, screen, screen, screen;
  border-color: rgba(var(--lz-accent), .045) !important;
  box-shadow: none;
  animation: lzSeamlessFlow var(--lz-field-speed) linear infinite;
}

body.lz-motion main > section:nth-of-type(even):not(.stage):not(.home-intro) {
  background-color: rgba(9, 9, 9, .62) !important;
}

body.lz-motion main > .hero {
  background-color: rgba(9, 9, 9, .56) !important;
  background-image:
    radial-gradient(ellipse 62% 72% at 50% 0%, rgba(var(--lz-accent-soft), .13), transparent 70%),
    radial-gradient(ellipse 42% 44% at 16% 18%, rgba(var(--lz-accent), .09), transparent 72%),
    var(--lz-pattern-a),
    var(--lz-pattern-b) !important;
  background-size:
    auto,
    auto,
    var(--lz-size-a),
    var(--lz-size-b) !important;
  background-position:
    0 0,
    0 0,
    0 0,
    -320px 0 !important;
  background-attachment: fixed !important;
}

body.lz-motion .blueprint-grid {
  opacity: .28;
  animation: lzBlueprintDrift 18s linear infinite;
}

body.lz-motion .eyebrow {
  box-shadow: 0 0 24px rgba(var(--lz-accent), .06);
}

body.lz-motion .eyebrow .dot,
body.lz-motion .status-pill b {
  animation: lzSignalPulse 1.45s ease-in-out infinite;
}

/* Purposeful interaction layer shared by every public page. */
.lz-scroll-rail {
  position: fixed;
  right: 9px;
  top: 92px;
  bottom: 22px;
  width: 2px;
  z-index: 120;
  overflow: hidden;
  pointer-events: none;
  border-radius: 999px;
  background: rgba(var(--lz-accent), .10);
}

.lz-scroll-rail > i {
  display: block;
  width: 100%;
  height: var(--lz-scroll-progress, 0%);
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(var(--lz-accent-soft), .95), rgba(var(--lz-accent), .28));
  box-shadow: 0 0 10px rgba(var(--lz-accent-soft), .62);
  transition: height .12s linear;
}

body.lz-interactive-ready .lz-reveal {
  opacity: .55;
  transform: translate3d(0, 18px, 0);
  transition: opacity .65s ease, transform .65s cubic-bezier(.22,1,.36,1);
}

body.lz-interactive-ready .lz-reveal.lz-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

body.lz-interactive-ready a:focus-visible,
body.lz-interactive-ready button:focus-visible,
body.lz-interactive-ready [role="button"]:focus-visible {
  outline: 2px solid rgba(var(--lz-accent-soft), .95);
  outline-offset: 4px;
}

/* Lead-Ready Website: architectural blueprint movement */
body.lz-website {
  --lz-pattern-a:
    linear-gradient(rgba(96, 190, 255, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(212, 175, 55, .04) 1px, transparent 1px);
  --lz-pattern-b:
    linear-gradient(118deg, transparent 0 43%, rgba(255, 217, 138, .025) 47%, rgba(255, 217, 138, .065) 49%, rgba(255, 217, 138, .025) 51%, transparent 55% 100%);
  --lz-size-a: 64px 64px, 64px 64px;
  --lz-size-b: 210px 210px;
}

/* Lead Capture: signals moving from intake to tracker */
body.lz-capture {
  --lz-pattern-a:
    radial-gradient(circle, rgba(255, 217, 138, .11) 1px, transparent 1.8px),
    linear-gradient(90deg, rgba(212, 175, 55, .04) 1px, transparent 1px);
  --lz-pattern-b:
    linear-gradient(90deg, transparent 0 42%, rgba(255, 217, 138, .075) 49%, transparent 56% 100%);
  --lz-size-a: 42px 42px, 84px 84px;
  --lz-size-b: 280px 100%;
  --lz-field-speed: 16s;
}

/* CRM: connected node field */
body.lz-crm {
  --lz-pattern-a:
    radial-gradient(circle, rgba(255, 217, 138, .13) 1px, transparent 2px),
    linear-gradient(120deg, rgba(212, 175, 55, .045) 1px, transparent 1px);
  --lz-pattern-b:
    linear-gradient(90deg, transparent 0 35%, rgba(212, 175, 55, .065) 48%, transparent 62% 100%);
  --lz-size-a: 54px 54px, 108px 108px;
  --lz-size-b: 320px 100%;
  --lz-field-speed: 18s;
}

/* Missed-call Recovery: expanding communication rings */
body.lz-call {
  --lz-pattern-a:
    repeating-radial-gradient(circle at 82% 50%, transparent 0 44px, rgba(212, 175, 55, .055) 45px, transparent 47px 72px),
    linear-gradient(rgba(212, 175, 55, .035) 1px, transparent 1px);
  --lz-pattern-b:
    linear-gradient(112deg, transparent 0 46%, rgba(255, 217, 138, .065) 49%, transparent 52% 100%);
  --lz-size-a: 520px 520px, 82px 82px;
  --lz-size-b: 250px 250px;
  --lz-field-speed: 20s;
}

/* Client Pilot: voice-wave field */
body.lz-pilot {
  --lz-pattern-a:
    repeating-linear-gradient(90deg, transparent 0 25px, rgba(255, 217, 138, .045) 26px, transparent 28px 48px),
    linear-gradient(rgba(212, 175, 55, .035) 1px, transparent 1px);
  --lz-pattern-b:
    linear-gradient(102deg, transparent 0 43%, rgba(255, 217, 138, .075) 49%, transparent 55% 100%);
  --lz-size-a: 100% 100%, 76px 76px;
  --lz-size-b: 300px 100%;
  --lz-field-speed: 15s;
}

@keyframes lzFieldFlow {
  from {
    background-position: 0 0, 0 0, 0 0, -320px 0;
    transform: translate3d(-1.5%, -1%, 0) scale(1);
  }
  to {
    background-position: 0 0, 0 0, 160px 160px, calc(100vw + 320px) 120px;
    transform: translate3d(1.5%, 1%, 0) scale(1.035);
  }
}

@keyframes lzSeamlessFlow {
  from { background-position: 0 0, 0 0, 0 0, -320px 0; }
  to { background-position: 0 0, 0 0, 160px 160px, calc(100vw + 320px) 120px; }
}

@keyframes lzScannerOrbit {
  from { transform: translate(-50%, -50%) rotate(0deg) scale(.94); opacity: .42; }
  50% { opacity: .8; }
  to { transform: translate(-50%, -50%) rotate(360deg) scale(1.06); opacity: .42; }
}

@keyframes lzBlueprintDrift {
  from { background-position: 0 0, 0 0; }
  to { background-position: 48px 48px, 48px 48px; }
}

@keyframes lzSignalPulse {
  0%, 100% { opacity: .45; box-shadow: 0 0 4px rgba(var(--lz-accent), .28); }
  50% { opacity: 1; box-shadow: 0 0 14px rgba(var(--lz-accent-soft), .78); }
}

@media (max-width: 760px) {
  body.lz-motion {
    --lz-field-speed: 28s;
  }

  .lz-scroll-rail {
    right: 4px;
    top: 78px;
    bottom: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.lz-motion::before,
  body.lz-motion::after,
  body.lz-motion main > section,
  body.lz-motion .blueprint-grid,
  body.lz-motion .eyebrow .dot,
  body.lz-motion .status-pill b {
    animation: none !important;
  }

  .lz-scroll-rail { display: none; }
  body.lz-interactive-ready .lz-reveal,
  body.lz-interactive-ready .lz-reveal.lz-visible {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
