/* ===== MCS · camada de movimento (dono: agente principal) ===== */
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false}
:root{--ease:cubic-bezier(.2,.7,.2,1)}
/* barra de progresso */
.fx-progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:2000;pointer-events:none;background:transparent}
.fx-progress i{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#E5484D,#FFC531,#C9A24B,#6F93BF,#5DBB63);box-shadow:0 0 14px rgba(201,162,75,.6)}
/* brilho do cursor */
.fx-cursor{position:fixed;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;z-index:1;opacity:0;background:radial-gradient(circle,rgba(201,162,75,.11),rgba(111,147,191,.05) 45%,transparent 68%);transition:opacity .4s}
.fx-cursor.on{opacity:1}
/* revelar na rolagem */
html.js .fx-r{opacity:0;transform:translate3d(0,30px,0);transition:opacity .75s var(--ease) var(--d,0ms),transform .75s var(--ease) var(--d,0ms)}
html.js .fx-r.in{opacity:1;transform:none}
@media (max-width:700px){html.js .fx-r{transform:translate3d(0,20px,0)}}
/* brilho dourado nos títulos */
html.js :is(#inicio,#segmentos,#antes,#plataforma,#demo,#calculadora,#incluso,#como,#cases,#faq,#suporte,#orcamento) .g{background-image:linear-gradient(105deg,transparent 42%,rgba(255,251,230,.9) 50%,transparent 58%),linear-gradient(180deg,#F2DC95 0%,#D4AE55 52%,#9A7324 100%);background-size:250% 100%,100% 100%;background-repeat:no-repeat;background-position:150% 0,0 0;-webkit-background-clip:text;background-clip:text;animation:gshine 7s cubic-bezier(.3,.6,.3,1) infinite}
@keyframes gshine{0%,58%{background-position:150% 0,0 0}100%{background-position:-50% 0,0 0}}
/* botões: brilho que passa */
.btn,.bt,.b1{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);transform:translateX(-130%);animation:btnshine 5s cubic-bezier(.3,.6,.3,1) infinite}
@keyframes btnshine{0%,60%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
.btn{will-change:transform}
/* cartões: brilho do cursor + anel giratório */
.fx-host{position:relative}
.fx-spot{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;z-index:1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(242,220,149,.13),transparent 60%)}
.fx-ring{position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;z-index:2;padding:1.6px;background:conic-gradient(from var(--ang),transparent 0 62%,var(--acc,#C9A24B) 82%,#F2DC95 90%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);animation:spin 3.4s linear infinite}
@keyframes spin{to{--ang:360deg}}
@media (hover:hover) and (pointer:fine){.fx-host:hover .fx-spot,.fx-host:hover .fx-ring{opacity:1}}
.fx-tilt{transition:transform .35s var(--ease);transform-style:preserve-3d}
/* separador entre seções */
.fx-div{position:relative;height:1px;max-width:1226px;margin:0 auto;background:linear-gradient(90deg,transparent,#2a3850 20%,#2a3850 80%,transparent);overflow:hidden}
.fx-div::after{content:"";position:absolute;top:-1px;left:0;width:160px;height:3px;background:linear-gradient(90deg,transparent,#C9A24B,#F2DC95,#6F93BF,transparent);animation:divrun 6s linear infinite;filter:blur(.3px)}
@keyframes divrun{from{transform:translateX(-160px)}to{transform:translateX(1400px)}}
/* faixa de segmentos */
.fx-marq{position:relative;overflow:hidden;border-block:1px solid #1e2a3d;background:linear-gradient(180deg,#0b0f16,#080b10);padding:18px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.fx-track{display:flex;gap:44px;width:max-content;animation:marq 42s linear infinite}
.fx-marq:hover .fx-track{animation-play-state:paused}
.fx-track span{display:inline-flex;align-items:center;gap:14px;white-space:nowrap;font:700 22px/1 'Inter Display','Inter',sans-serif;letter-spacing:.01em;color:#CBD5E4}
.fx-track span i{width:12px;height:12px;border-radius:3px;transform:rotate(45deg);background:var(--c,#C9A24B);box-shadow:0 0 12px var(--c,#C9A24B)}
@keyframes marq{to{transform:translateX(-50%)}}
/* etiquetas flutuantes sobre as imagens */
.fx-tag{position:absolute;z-index:5;display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:12px;background:rgba(9,12,18,.78);border:1px solid var(--tc,#3a4d6b);color:#F2F4F8;font:700 15px/1 'Inter',sans-serif;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 22px color-mix(in srgb,var(--tc,#C9A24B) 28%,transparent);opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .5s var(--ease) var(--td,0ms),transform .5s var(--ease) var(--td,0ms);line-height:1}
.fx-tag b{width:9px;height:9px;border-radius:50%;background:var(--tc,#22C55E);box-shadow:0 0 0 0 var(--tc,#22C55E);animation:pulse 2s infinite}
.fx-tag.in{opacity:1;transform:translate(-50%,-50%) scale(1)}
.fx-tag u{text-decoration:none;display:block;animation:floaty 4.2s ease-in-out infinite;animation-delay:var(--td,0ms)}
.fx-tag u{display:inline-flex;align-items:center;gap:9px}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--tc,#22C55E) 70%,transparent)}70%,100%{box-shadow:0 0 0 9px transparent}}
@media (max-width:900px){.fx-tag{font-size:13px;padding:7px 10px}.fx-tag u{gap:7px}}
@media (max-width:640px){.fx-tag.opt{display:none}.fx-tag{font-size:12px;padding:6px 9px}}
/* destaques vivos nas seções */
#antes .good .col:first-child .o:first-child{animation:ordpulse 2.6s ease-in-out infinite}
@keyframes ordpulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}50%{box-shadow:0 0 0 2px rgba(34,197,94,.7),0 0 24px rgba(34,197,94,.35)}}
#antes .bad .badge{animation:blink 1.6s steps(2,jump-none) infinite}
@keyframes blink{50%{background:#a7282d}}
html.js .fx-photo{overflow:hidden}
.fx-photo img{will-change:transform}
/* movimento reduzido */
@media (prefers-reduced-motion:reduce){
 .fx-track,.fx-div::after,.btn::after,.fx-ring,.fx-tag u,.fx-tag b,.g,#antes .good .col:first-child .o:first-child,#antes .bad .badge{animation:none!important}
 html.js .fx-r{opacity:1;transform:none;transition:none}
 .fx-tag{transition:none}.fx-cursor{display:none}
}
