/* ==========================================================================
   Home "Partículas" — tema claro (padrão) e escuro
   ========================================================================== */
.lxp {
	--bg: #FDFFFB; --ink: #2B0A30; --muted: #6C4D66; --line: rgba(112, 0, 116, .16);
	--accent: #700074; --hot: #B8007F; --gold: #9A6A12;
	--glass: rgba(253, 255, 251, .72); --stat-bg: #FDFFFB;
	position: relative;
	width: 100%;
	min-height: 100vh;
	overflow-x: clip;
	background: var(--bg);
	color: var(--ink);
	font-family: "Signika", system-ui, sans-serif;
	font-weight: 300;
}
.lxp--escuro {
	--bg: #0E0612; --ink: #FDF6FA; --muted: #CDB8C9; --line: rgba(253, 246, 250, .14);
	--accent: #C375CE; --hot: #FF6EDD; --gold: #F2C46D;
	--glass: rgba(20, 8, 26, .55); --stat-bg: #0E0612;
}
body.lux-home-particles { background: var(--lxp-body, #FDFFFB); }
body.lux-home-particles.lux-home-escuro { --lxp-body: #0E0612; }

.lxp *, .lxp *::before, .lxp *::after { box-sizing: border-box; }
.lxp h1, .lxp h2, .lxp h3, .lxp p { font-family: inherit; }
.lxp a { color: var(--hot); }
.lxp a:hover { color: var(--accent); }

.lxp-fx { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.lxp-progress { position: fixed; top: var(--lux-admin-bar, 0px); left: 0; right: 0; height: 3px; z-index: 1000; }
.lxp-progress__bar { height: 100%; width: 0; background: linear-gradient(90deg, var(--accent), var(--hot), var(--gold)); }

.lxp-sec { position: relative; z-index: 1; padding: 18vh 6vw; }
.lxp-wrap { max-width: 1180px; margin: 0 auto; }

.lxp-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: "Fira Sans", sans-serif; font-size: 13px; font-weight: 600;
	letter-spacing: .22em; text-transform: uppercase; color: var(--gold);
}
.lxp-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.lxp-h2 { margin: 18px 0 0; font-size: clamp(40px, 5.6vw, 84px); font-weight: 600; line-height: .98; letter-spacing: -.02em; color: var(--ink); }
.lxp-h2 em { font-style: normal; color: var(--hot); }
.lxp-lead { max-width: 520px; margin: 24px 0 0; font-size: 20px; line-height: 1.6; color: var(--muted); }

.lxp-btn {
	display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 22px;
	border-radius: 999px; border: 1.5px solid transparent;
	font-family: "Signika", sans-serif; font-size: 16px; font-weight: 600; text-decoration: none;
	transition: transform .3s, background .3s, color .3s, border-color .3s;
}
.lxp-btn svg { width: 18px; height: 18px; flex: none; }
.lxp .lxp-btn--solid { background: var(--accent); color: #fff; }
.lxp .lxp-btn--solid:hover { background: var(--hot); color: #fff; transform: translateY(-2px); }
.lxp .lxp-btn--ghost { border-color: var(--accent); color: var(--ink); background: transparent; }
.lxp .lxp-btn--ghost:hover { border-color: var(--hot); color: var(--ink); transform: translateY(-2px); }
.lxp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }

/* Hero */
.lxp-hero { min-height: 100vh; display: flex; align-items: center; padding-top: 140px; }
.lxp-hero .lxp-wrap { width: 100%; }
.lxp-hero__text { max-width: 640px; will-change: transform, opacity; }
.lxp-hero__title { margin: 22px 0 0; font-size: clamp(56px, 8.4vw, 128px); font-weight: 700; line-height: .9; letter-spacing: -.035em; color: var(--ink); }
.lxp-hero__title span { display: block; }
/* Contorno do nome inteiro como uma forma só (sem as linhas onde as letras se encontram):
   o texto é preenchido e o filtro SVG #lxp-outline deixa apenas a borda externa. */
.lxp-outline { color: var(--ink); filter: url(#lxp-outline); }
.lxp-svgdefs { position: absolute; width: 0; height: 0; overflow: hidden; }
.lxp-cue { position: absolute; left: 6vw; bottom: 36px; display: flex; align-items: center; gap: 14px; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.lxp-cue__line { position: relative; width: 1px; height: 48px; overflow: hidden; background: var(--line); }
.lxp-cue__line::after { content: ""; position: absolute; left: 0; top: -50%; width: 1px; height: 50%; background: var(--hot); animation: lxp-cue 1.8s ease-in-out infinite; }
@keyframes lxp-cue { to { top: 100%; } }

/* Entradas: só escondemos quando o JS está ativo */
.lxp-js .lxp-anim { opacity: 0; }
.lxp-js.is-ready .lxp-anim { animation: lxp-in 1.1s cubic-bezier(.2, .8, .2, 1) forwards; }
.lxp-js.is-ready .lxp-anim.d1 { animation-delay: .12s; }
.lxp-js.is-ready .lxp-anim.d2 { animation-delay: .24s; }
.lxp-js.is-ready .lxp-anim.d3 { animation-delay: .36s; }
.lxp-js.is-ready .lxp-anim.d4 { animation-delay: .6s; }
@keyframes lxp-in { from { opacity: 0; transform: translateY(40px); filter: blur(8px); } to { opacity: 1; transform: none; filter: blur(0); } }
.lxp-js [data-rv] { opacity: 0; transform: translateY(48px); filter: blur(6px); transition: opacity 1s cubic-bezier(.2, .8, .2, 1), transform 1s cubic-bezier(.2, .8, .2, 1), filter 1s; }
.lxp-js [data-rv].in { opacity: 1; transform: none; filter: blur(0); }

/* Números */
.lxp-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 64px; overflow: hidden; background: var(--line); border: 1px solid var(--line); border-radius: 24px; }
.lxp-stat { padding: 40px 32px; background: var(--stat-bg); }
.lxp-stat__n { font-size: clamp(48px, 6vw, 88px); font-weight: 700; line-height: 1; letter-spacing: -.03em; background: linear-gradient(120deg, var(--ink), var(--hot)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lxp-stat__l { margin-top: 12px; font-size: 17px; color: var(--muted); }

/* Manifesto */
.lxp-manifesto { min-height: 170vh; padding-top: 30vh; }
.lxp-manifesto__sticky { position: sticky; top: 22vh; }
.lxp-manifesto__text { margin: 0; max-width: 1060px; font-size: clamp(34px, 4.6vw, 68px); font-weight: 600; line-height: 1.12; letter-spacing: -.02em; color: var(--ink); }
.lxp-mw { display: inline-block; margin-right: .26em; }
.lxp-js .lxp-mw { opacity: .14; transition: opacity .25s; }

/* Expertise */
.lxp-xp { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 64px; max-width: 760px; margin-top: 56px; }
.lxp-xp__item { display: flex; align-items: baseline; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--line); font-size: 22px; font-weight: 400; transition: padding .35s, color .35s; }
.lxp-xp__item:hover { padding-left: 12px; color: var(--hot); }
.lxp-xp__n { font-family: "Fira Sans", sans-serif; font-size: 13px; letter-spacing: .1em; color: var(--gold); }

/* Parceiros */
.lxp-partners { padding-left: 0; padding-right: 0; }
.lxp-partners__head { display: flex; flex-direction: column; align-items: flex-end; padding: 0 6vw; text-align: right; }
.lxp-marquee { margin-top: 72px; padding: 28px 0; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.lxp-marquee__track { display: flex; width: max-content; gap: 72px; animation: lxp-marquee 26s linear infinite; }
.lxp-marquee:hover .lxp-marquee__track { animation-play-state: paused; }
.lxp-marquee__item { font-size: clamp(40px, 5vw, 72px); font-weight: 700; letter-spacing: -.02em; white-space: nowrap; color: var(--muted); filter: url(#lxp-outline-thin); transition: color .3s; }
.lxp-marquee__item:hover { color: var(--ink); filter: none; }
@keyframes lxp-marquee { to { transform: translateX(-50%); } }

/* Recomendações (rolagem horizontal) */
.lxp-hs { height: 340vh; padding: 0; }
.lxp-hs__sticky { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.lxp-hs__head { padding: 0 6vw; }
.lxp-hs__track { display: flex; align-items: stretch; gap: 28px; width: max-content; padding: 48px 6vw 0; will-change: transform; }
.lxp-quote { flex: none; width: min(460px, 78vw); margin: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: 36px; border-radius: 28px; background: var(--glass); border: 1px solid var(--line); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.lxp-quote__mark { width: 40px; height: 40px; color: var(--hot); }
.lxp-quote__text { margin: 0; padding: 0; border: 0; font-size: 18px; font-style: normal; font-weight: 300; line-height: 1.6; color: var(--ink); }
.lxp-quote__who { display: flex; align-items: center; gap: 14px; font-style: normal; }
.lxp-quote__who img { width: 46px !important; height: 46px !important; border-radius: 50%; object-fit: cover; background: var(--line); }
.lxp-quote__name { display: block; font-style: normal; font-size: 17px; font-weight: 600; }
.lxp-quote__role { font-size: 14px; color: var(--muted); }

/* Quem sou eu */
.lxp-about { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 72px; align-items: center; }
.lxp-about__photo { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 32px; border: 1px solid var(--line); }
.lxp-about__img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 88% 22%; transform: scale(1.08); transform-origin: 88% 22%; will-change: transform; }
.lxp-about__badge { position: absolute; left: 18px; bottom: 18px; display: flex; align-items: center; gap: 12px; padding: 10px 16px 10px 10px; border-radius: 999px; background: var(--glass); border: 1px solid var(--line); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font-size: 15px; }
.lxp-about__badge img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }

/* Veja também */
.lxp-see { padding-top: 6vh; }
.lxp-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 56px; }
.lxp .lxp-card { position: relative; display: block; min-height: 420px; overflow: hidden; border-radius: 32px; border: 1px solid var(--line); color: #fff; text-decoration: none; }
.lxp-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .8, .2, 1); }
.lxp-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 6, 18, 0) 30%, rgba(14, 6, 18, .86)); }
.lxp-card:hover img { transform: scale(1.08); }
.lxp-card__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 32px; }
.lxp-card__title { margin: 0; font-size: 44px; font-weight: 700; letter-spacing: -.02em; color: #fff; }
.lxp-card__desc { max-width: 380px; margin: 8px 0 0; font-size: 16px; line-height: 1.5; color: rgba(255, 255, 255, .85); }
.lxp-card__go { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #fff; color: #2B0A30; transition: transform .4s; }
.lxp-card:hover .lxp-card__go { transform: rotate(-45deg); }

/* Chamada final */
.lxp-final { padding-top: 10vh; padding-bottom: 16vh; }
.lxp-final__big { margin: 0; font-size: clamp(48px, 9vw, 150px); font-weight: 700; line-height: .9; letter-spacing: -.04em; }
.lxp .lxp-final__big a { color: var(--ink); text-decoration: none; transition: color .3s; }
.lxp .lxp-final__big a:hover { color: var(--hot); }

/* Celular e tablet */
@media (max-width: 900px) {
	.lxp-sec { padding: 14vh 22px; }
	.lxp-hero { align-items: flex-end; padding-top: 110px; padding-bottom: 18vh; }
	.lxp-stats, .lxp-xp, .lxp-cards { grid-template-columns: 1fr; }
	.lxp-about { grid-template-columns: 1fr; gap: 40px; }
	.lxp .lxp-card { min-height: 320px; }
	.lxp-hs { height: auto; padding: 14vh 0; }
	.lxp-hs__sticky { position: relative; height: auto; }
	.lxp-hs__track { flex-direction: column; width: auto; padding: 40px 22px 0; }
	.lxp-quote { width: auto; }
	.lxp-manifesto { min-height: auto; padding-top: 14vh; }
	.lxp-manifesto__sticky { position: relative; top: 0; }
	.lxp-cue { left: 22px; }
	.lxp-partners__head { padding: 0 22px; }
}

@media (prefers-reduced-motion: reduce) {
	.lxp-js [data-rv], .lxp-js .lxp-anim, .lxp-js .lxp-mw { opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important; transition: none !important; }
	.lxp-marquee__track { animation: none; }
}
