/*
  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;
  }
}


/* Visual-only refinement: existing layout, copy, forms and interaction logic stay intact. */

/* A single slow light field replaces the repeated moving background textures. */
body.lz-motion::before {
  inset: -4%;
  background-image:
    radial-gradient(ellipse 60% 40% at 15% 8%, rgba(212,175,55,.14), transparent 74%),
    radial-gradient(ellipse 50% 48% at 88% 88%, rgba(163,109,38,.12), transparent 74%);
  background-size: auto;
  background-position: center;
  animation: lzQuietLight 28s ease-in-out infinite alternate;
}
body.lz-motion::after { animation: none; transform: translate(-50%,-50%); opacity: .14; }

/* One continuous surface carries the same light and texture across section boundaries. */
body.lz-motion main {
  background-color: #090909;
  background-image:
    linear-gradient(180deg, #090909, transparent 260px, transparent calc(100% - 180px), #0b0b0b),
    radial-gradient(ellipse 75% 48% at 0% 38%, rgba(171,121,37,.075), transparent 78%),
    radial-gradient(ellipse 65% 45% at 100% 70%, rgba(212,175,55,.045), transparent 78%),
    linear-gradient(rgba(230,210,163,.016) 1px, transparent 1px),
    linear-gradient(90deg, rgba(230,210,163,.016) 1px, transparent 1px);
  background-size: auto, auto, auto, 64px 64px, 64px 64px;
  background-position: center;
}
body.lz-motion main > section:not(#stage):not(.home-intro) {
  background-color: transparent !important;
  background-image: none !important;
  background-size: auto !important;
  background-position: center !important;
  background-attachment: scroll !important;
  background-blend-mode: normal;
  animation: none;
  border-color: transparent !important;
  box-shadow: none;
}
body.lz-motion main > section:nth-of-type(even):not(#stage):not(.home-intro) {
  background-color: transparent !important;
}
body.lz-motion .blueprint-grid { animation: none; opacity: .18; }
body.lz-motion .section::after, body.lz-motion .band::after {
  opacity: 0; animation: none;
}

/* Preserve the continuous homepage hero, adding light at its edges. */
body.lz-motion .home-intro {
  background:
    radial-gradient(ellipse 50% 84% at 8% 4%, rgba(176,128,38,.14), transparent 74%),
    radial-gradient(ellipse 50% 50% at 94% 40%, rgba(212,175,55,.07), transparent 74%),
    radial-gradient(ellipse 70% 62% at 50% 0%, rgba(212,175,55,.10), transparent 66%),
    linear-gradient(180deg,#11100d,#0d0d0c 58%,#090909);
}
body.lz-motion .home-intro::before { opacity: .65; }
body.lz-motion .home-intro::after { filter: none; opacity: .85; }
body.lz-motion #stage { border-bottom-color: transparent; }
body.lz-motion .section-head .eyebrow,
body.lz-motion .narrow > .eyebrow { text-shadow: 0 0 20px rgba(212,175,55,.2); }

/* The surfaces keep their original geometry. Non-interactive cards don't pretend to be buttons. */
body.lz-motion :is(.cell,.inc-item,.pcard,.ie-card,.step,.who-item,.cap,.tier,.road-item) {
  background-image: linear-gradient(145deg,rgba(230,210,163,.045),transparent 52%) !important;
  border-color: rgba(230,210,163,.15) !important;
  box-shadow: inset 0 1px 0 rgba(255,239,198,.065), 0 10px 26px rgba(0,0,0,.12);
}
body.lz-motion .cell::after { animation: none; opacity: 0; }
body.lz-motion .cell p,
body.lz-motion .step p,
body.lz-motion .tier .who,
body.lz-motion .solution-console-hint { color:#b7b0a1; }
body.lz-motion .cell.is-match {
  border-color: rgba(255,217,138,.62) !important;
  box-shadow: inset 0 1px 0 rgba(255,239,198,.12), 0 0 0 1px rgba(212,175,55,.16), 0 14px 42px rgba(212,175,55,.11);
}
body.lz-motion .solution-console {
  background: linear-gradient(125deg,rgba(212,175,55,.11),rgba(14,14,13,.94) 65%);
  box-shadow: inset 0 1px 0 rgba(255,239,198,.1),0 16px 40px rgba(0,0,0,.22);
}
body.lz-motion .btn {
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease, transform .2s ease;
}
body.lz-motion :is(a,button,input,select,textarea,summary,[role="button"]):focus-visible {
  outline: 2px solid #f2d68b;
  outline-offset: 4px;
}
body.lz-motion :is(a.cell,.btn,.solution-filter):focus-visible {
  border-color: rgba(255,217,138,.8) !important;
  box-shadow: 0 0 0 5px rgba(212,175,55,.08),0 12px 32px rgba(0,0,0,.26);
}
@media (hover:hover) and (pointer:fine) {
  body.lz-motion a.cell:not(.is-filtered-out):hover {
    border-color: rgba(255,217,138,.55) !important;
    box-shadow: inset 0 1px 0 rgba(255,239,198,.14),0 14px 32px rgba(0,0,0,.3),0 0 24px rgba(212,175,55,.08);
    transform: translateY(-3px);
  }
  body.lz-motion .btn:hover {
    border-color: rgba(255,217,138,.65) !important;
    box-shadow: inset 0 1px 0 rgba(255,239,198,.1),0 8px 26px rgba(212,175,55,.1) !important;
    transform: translateY(-2px);
  }
}
body.lz-motion :is(.btn,.solution-filter):active { transform: translateY(1px); }

/* Reveals never dim text; content is visible before JS, after failure, and on focus. */
body.lz-interactive-ready .lz-reveal {
  opacity: 1;
  transform: translate3d(0,8px,0);
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
body.lz-interactive-ready .lz-reveal:is(.lz-visible,:focus-within) { opacity:1; transform:none; }

/* Repair only the decorative ribbon's collision with the existing hero .stage class. */
body.lz-motion .offer-ribbon.stage {
  position:absolute; left:auto; right:-49px; top:22px; width:188px;
  height:auto; min-height:0; margin:0; overflow:visible;
  background:linear-gradient(90deg,#947021,#F2D68B,#B78B31);
  border:1px solid rgba(255,235,180,.7);
  transform:rotate(34deg);
}
body.lz-motion .offer-ribbon.stage::before,
body.lz-motion .offer-ribbon.stage::after { content:none; }

@keyframes lzQuietLight {
  from { transform:translate3d(-1%,0,0); opacity:.65; }
  to { transform:translate3d(1%,1%,0); opacity:.95; }
}
@media (hover:none), (pointer:coarse), (max-width:760px) {
  body.lz-motion::before { animation:none; transform:none; opacity:.8; }
  body.lz-motion :is(a.cell,.btn,.solution-filter):hover { transform:none; }
  body.lz-interactive-ready .lz-reveal { transform:none; transition:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  body.lz-motion, body.lz-motion *, body.lz-motion::before, body.lz-motion::after,
  body.lz-motion *::before, body.lz-motion *::after {
    animation:none !important; transition:none !important; scroll-behavior:auto !important;
  }
  body.lz-motion::before { transform:none; opacity:.8; }
  body.lz-interactive-ready .lz-reveal,
  body.lz-motion :is(a.cell,.btn,.solution-filter):is(:hover,:active) { transform:none; opacity:1; }
}
