/* LM - Home Efeitos. Each rule is scoped to an lmfx-* global class set on an Elementor element. */

:root { --lmfx-sand: #c9b38a; --lmfx-ease: cubic-bezier(.22, 1, .36, 1); }

/* hero: the silk canvas sits under every child of the hero */
.lmfx-hero { isolation: isolate; }
.lmfx-silk { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; opacity: 0; transition: opacity 1.6s ease; }
.lmfx-silk.is-on { opacity: 1; }

/* reveal on scroll (only once the script runs, and never inside the Elementor editor) */
.lmfx-js .lmfx-reveal { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--lmfx-ease), transform .9s var(--lmfx-ease); }
.lmfx-js .lmfx-reveal.is-in { opacity: 1; transform: none; }

/* spotlight that follows the pointer */
.lmfx-spot { --mx: 50%; --my: 50%; position: relative; overflow: hidden; }
.lmfx-spot::before { content: ""; position: absolute; inset: 0; z-index: 0; background: radial-gradient(360px circle at var(--mx) var(--my), rgb(201 179 138 / .28), transparent 60%); opacity: 0; transition: opacity .4s; pointer-events: none; }
.lmfx-spot:hover::before { opacity: 1; }
.lmfx-spot > * { position: relative; z-index: 1; }

/* magnetic and tilting elements */
.lmfx-magnet { transition: transform .45s var(--lmfx-ease); will-change: transform; }
.lmfx-tilt { transition: transform .6s var(--lmfx-ease); will-change: transform; }

/* logo loop: the script doubles the track's children */
.lmfx-loop { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.lmfx-loop-track { width: max-content !important; flex-wrap: nowrap !important; animation: lmfx-loop 38s linear infinite; }
.lmfx-loop:hover .lmfx-loop-track { animation-play-state: paused; }
@keyframes lmfx-loop { to { transform: translateX(-50%); } }

/* words that light up as the quote crosses the screen */
.lmfx-words .lmfx-w { opacity: .18; transition: opacity .5s; }
.lmfx-words .lmfx-w.is-lit { opacity: 1; }
.lmfx-words em { font-style: normal; color: var(--lmfx-sand); }

/* curved text loop, built from the paragraph inside .lmfx-curve */
.lmfx-curve { cursor: grab; user-select: none; touch-action: pan-y; }
.lmfx-curve:active { cursor: grabbing; }
.lmfx-curve.is-built > :not(svg) { display: none !important; }
.lmfx-curve svg { width: 100%; height: auto; display: block; overflow: visible; }
.lmfx-curve text { font: 800 64px/1 "Manrope", sans-serif; letter-spacing: -0.03em; fill: currentColor; }
.lmfx-curve text .s { fill: var(--lmfx-sand); }
@media (max-width: 767px) { .lmfx-curve text { font-size: 150px; } }

/* circular text around the closing button, built from the paragraph inside .lmfx-orb */
.lmfx-orb { position: relative; }
.lmfx-orb.is-built > .lmfx-orb-text { display: none !important; }
.lmfx-orb-ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: lmfx-spin 18s linear infinite; pointer-events: none; }
.lmfx-orb:hover .lmfx-orb-ring { animation-duration: 6s; }
.lmfx-orb-ring text { font: 600 11.5px "Manrope", sans-serif; letter-spacing: .32em; fill: rgb(255 255 255 / .7); text-transform: uppercase; }
@keyframes lmfx-spin { to { transform: rotate(360deg); } }

/* floating pill nav, shown once the hero has scrolled away */
.lmfx-dock { position: fixed !important; top: 16px; left: 50%; z-index: 999; transform: translate(-50%, -220%); transition: transform .6s var(--lmfx-ease); backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4); }
/* !important: the element's own Elementor style keeps it hidden when the plugin is off, and wins on specificity */
.lmfx-dock.is-on { transform: translate(-50%, 0) !important; }
.elementor-editor-active .lmfx-dock { position: relative !important; top: auto; left: auto; transform: none !important; margin-inline: auto; }

@media (prefers-reduced-motion: reduce) {
	.lmfx-loop-track, .lmfx-orb-ring { animation: none; }
	.lmfx-js .lmfx-reveal { opacity: 1; transform: none; }
	.lmfx-words .lmfx-w { opacity: 1; }
}
