/* Lead Grey motion layer: sits on top of the Tilda export, no layout changes. */
:root { --lg-blue: #096cff; --lg-blue-2: #5ea2ff; }

/* Elements wait hidden until the script takes over (class set in <head>, removed on failure). */
html.lg-motion:not(.lg-ready) .t396 .tn-elem, html.lg-motion:not(.lg-ready) .t668__wrapper,
html.lg-motion:not(.lg-ready) [data-lg-reveal] { opacity: 0; }

/* Scroll progress */
.lg-progress { position: fixed; left: 0; top: 0; height: 3px; width: 100%; z-index: 99999; pointer-events: none;
  transform-origin: 0 50%; transform: scaleX(0);
  background: linear-gradient(90deg, var(--lg-blue), var(--lg-blue-2)); box-shadow: 0 0 12px rgba(9,108,255,.7); }

/* Cursor glow on desktop */
.lg-glow { position: fixed; left: 0; top: 0; width: 520px; height: 520px; margin: -260px 0 0 -260px; border-radius: 50%;
  z-index: 9998; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(closest-side, rgba(9,108,255,.16), rgba(9,108,255,.05) 55%, transparent 72%);
  mix-blend-mode: screen; will-change: transform; }
.lg-glow.on { opacity: 1; }

/* Idle floating for small decorative pieces (uses `translate`, so it never fights GSAP transforms) */
@keyframes lgFloat {
  0%, 100% { translate: 0 0; rotate: 0deg; }
  50% { translate: 0 var(--lg-fy, -10px); rotate: var(--lg-fr, 3deg); }
}
.lg-float { animation: lgFloat var(--lg-fd, 6s) ease-in-out var(--lg-fdl, 0s) infinite; }

/* Call-to-action buttons: breathing glow + shine sweep */
@keyframes lgPulse {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(9,108,255,0)); }
  50% { filter: drop-shadow(0 0 18px rgba(9,108,255,.75)); }
}
.lg-cta > .tn-atom, .lg-cta .tn-atom { animation: lgPulse 2.8s ease-in-out infinite; }
.lg-cta { overflow: visible; }
.lg-shine { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; pointer-events: none; }
.lg-shine::after { content: ""; position: absolute; top: -20%; bottom: -20%; width: 40%; left: -60%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform: skewX(-18deg); animation: lgShine 4.2s ease-in-out 1.2s infinite; }
@keyframes lgShine { 0% { left: -60%; } 38%, 100% { left: 130%; } }

/* Hover lift for link groups (buttons are built from several Tilda elements) */
.tn-elem.lg-link { transition: translate .25s cubic-bezier(.2,.7,.2,1), filter .25s; cursor: pointer; }
.tn-elem.lg-link.lg-hover { translate: 0 -3px; }
.tn-elem.lg-cta.lg-hover { filter: brightness(1.12); }

/* Picture cards zoom softly on hover */
.tn-elem.lg-card { overflow: hidden; }
.tn-elem.lg-card > .tn-atom { transition: scale .6s cubic-bezier(.2,.7,.2,1); }
.tn-elem.lg-card:hover > .tn-atom { scale: 1.06; }

@media (prefers-reduced-motion: reduce) {
  .lg-float, .lg-cta .tn-atom, .lg-shine::after { animation: none !important; }
  .lg-glow, .lg-progress { display: none; }
}
