/* Movimento e desfoque — camada sobre o site (movimento.js marca os elementos).
   Tudo some com prefers-reduced-motion. */
:root{--mv-ease:cubic-bezier(.22,1,.36,1);--mv-mola:cubic-bezier(.34,1.56,.64,1)}

/* ---------- entrada com desfoque (reaproveita o [data-rv] do loja.js) ---------- */
.js [data-rv]{filter:blur(calc(var(--u)*10));transition:opacity .9s var(--mv-ease),translate 1s var(--mv-ease),scale 1.1s var(--mv-ease),filter 1s var(--mv-ease),clip-path 1.3s var(--mv-ease);transition-delay:var(--rv-delay,0ms)}
.js [data-rv="image"]{clip-path:inset(9% 6% 9% 6% round calc(var(--u)*28));scale:1.06}
.js [data-rv].vis{filter:none;clip-path:inset(0 0 0 0 round 0)}
.js [data-rv="image"].vis{clip-path:inset(0 0 0 0 round 0)}
.js [data-rv].mv-solto{filter:none;clip-path:none}

/* ---------- títulos palavra por palavra ---------- */
.mv-pal{display:inline-block;white-space:pre;opacity:0;filter:blur(calc(var(--u)*12));translate:0 .45em;rotate:2deg;transition:opacity .8s var(--mv-ease),filter .9s var(--mv-ease),translate .9s var(--mv-ease),rotate .9s var(--mv-ease);transition-delay:calc(var(--mv-i,0) * 70ms + 80ms)}
.mv-titulo.vis .mv-pal{opacity:1;filter:none;translate:0 0;rotate:0deg}
em .mv-pal{transition-duration:1.1s}

/* ---------- barra de progresso da leitura ---------- */
.mv-progresso{position:fixed;left:0;top:0;height:calc(var(--u)*3);width:100%;z-index:60;transform-origin:0 50%;transform:scaleX(var(--mv-p,0));background:linear-gradient(90deg,var(--rosa-2),var(--rosa),#d9a24b);pointer-events:none}

/* ---------- topo de vidro ao rolar ---------- */
.topo{transition:height .5s var(--mv-ease),background-color .5s,box-shadow .5s,backdrop-filter .5s}
.topo.rolou{background:rgba(252,248,241,.72);backdrop-filter:blur(calc(var(--u)*22)) saturate(1.5);-webkit-backdrop-filter:blur(calc(var(--u)*22)) saturate(1.5);box-shadow:0 calc(var(--u)*10) calc(var(--u)*34) calc(var(--u)*-18) rgba(23,56,41,.35)}

/* ---------- abertura: zoom lento, polaroid flutuando, pétalas ---------- */
.hero__foto img{animation:mv-respira 16s var(--mv-ease) both,mv-foco 1.3s var(--mv-ease) both}
@keyframes mv-respira{from{scale:1.14}to{scale:1.02}}
@keyframes mv-foco{from{filter:blur(calc(var(--u)*12)) saturate(.8)}to{filter:none}}
.hero .js [data-rv],.js .hero [data-rv]{transition-duration:.7s,.8s,.9s,.8s,1s}
.hero__foto img.mv-par{translate:0 var(--mv-par,0px)}
.hero__polaroid{animation:mv-flutua 7s ease-in-out 1.6s infinite}
@keyframes mv-flutua{0%,100%{translate:0 0}50%{translate:0 calc(var(--u)*-12)}}
.hero__legenda{backdrop-filter:blur(calc(var(--u)*10)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--u)*10)) saturate(1.3);background:rgba(255,252,246,.62)!important}
.mv-petalas{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.mv-petala{position:absolute;top:-8%;width:calc(var(--u)*var(--t,18));aspect-ratio:1;opacity:0;animation:mv-cai var(--d,16s) linear var(--a,0s) infinite;filter:blur(var(--b,0px))}
.mv-petala svg{width:100%;height:100%;display:block;animation:mv-gira var(--g,6s) ease-in-out infinite alternate}
@keyframes mv-cai{0%{opacity:0;transform:translate3d(0,0,0)}8%{opacity:var(--o,.7)}85%{opacity:var(--o,.7)}100%{opacity:0;transform:translate3d(calc(var(--u)*var(--x,60)),118vh,0)}}
@keyframes mv-gira{from{rotate:-35deg;scale:1 1}to{rotate:55deg;scale:.75 1}}

/* ---------- luzes desfocadas atrás de algumas seções ---------- */
.mv-aura{position:relative;isolation:isolate}
.mv-aura::before,.mv-aura::after{content:"";position:absolute;z-index:-1;width:calc(var(--u)*520);aspect-ratio:1;border-radius:50%;filter:blur(calc(var(--u)*90));opacity:.5;pointer-events:none;animation:mv-aura 22s ease-in-out infinite alternate}
.mv-aura::before{background:#f2c9c4;left:-8%;top:-10%}
.mv-aura::after{background:#dfe8d6;right:-6%;bottom:-12%;animation-delay:-11s}
@keyframes mv-aura{0%{translate:0 0;scale:1}50%{translate:calc(var(--u)*80) calc(var(--u)*40);scale:1.18}100%{translate:calc(var(--u)*-40) calc(var(--u)*70);scale:.92}}
.insta.mv-aura::before{background:#2f6b4d;opacity:.55}.insta.mv-aura::after{background:#7a3446;opacity:.35}

/* ---------- cartões: inclinação 3D e brilho que segue o mouse ---------- */
.mv-tilt{transform:perspective(calc(var(--u)*1000)) rotateX(var(--mv-rx,0deg)) rotateY(var(--mv-ry,0deg)) translateY(var(--mv-ty,0px));transition:transform .6s var(--mv-ease),box-shadow .6s var(--mv-ease);will-change:transform}
.mv-tilt.mv-ativo{transition:transform .12s linear,box-shadow .6s var(--mv-ease);--mv-ty:calc(var(--u)*-6);box-shadow:0 calc(var(--u)*30) calc(var(--u)*50) calc(var(--u)*-30) rgba(23,56,41,.45)}
.mv-tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;opacity:0;transition:opacity .5s;background:radial-gradient(circle at var(--mv-mx,50%) var(--mv-my,50%),rgba(255,255,255,.38),transparent 46%);mix-blend-mode:soft-light}
.mv-tilt.mv-ativo::after{opacity:1}
.card,.colecao,.plano,.depo__card{position:relative}
.colecao img,.card__foto img,.historia__f1 img,.historia__f2 img{transition:scale 1.1s var(--mv-ease),filter .8s}
.colecao:hover img,.card:hover .card__foto img{scale:1.07}
.colecao__pe{backdrop-filter:blur(calc(var(--u)*14)) saturate(1.4);-webkit-backdrop-filter:blur(calc(var(--u)*14)) saturate(1.4);background:rgba(255,253,249,.78)!important;transition:translate .6s var(--mv-ease)}
.colecao:hover .colecao__pe{translate:0 calc(var(--u)*-6)}
.colecao .seta{transition:rotate .6s var(--mv-mola),scale .6s var(--mv-mola)}
.colecao:hover .seta{rotate:-45deg;scale:1.1}

/* ---------- botões: reflexo que passa e leve atração do mouse ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate;transition:translate .35s var(--mv-ease),box-shadow .35s,background-color .3s,color .3s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);translate:-120% 0;transition:translate .9s var(--mv-ease)}
.btn:hover::before{translate:120% 0}
.btn.mv-ima{translate:var(--mv-bx,0px) var(--mv-by,0px)}
.btn:hover{box-shadow:0 calc(var(--u)*14) calc(var(--u)*26) calc(var(--u)*-14) rgba(23,56,41,.5)}

/* ---------- WhatsApp flutuante com pulso ---------- */
.wa-flutua::before,.wa-flutua::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #168544;opacity:0;animation:mv-pulso 3.2s var(--mv-ease) infinite}
.wa-flutua::after{animation-delay:1.6s}
@keyframes mv-pulso{0%{opacity:.55;scale:1}100%{opacity:0;scale:1.7}}

/* ---------- modais e sacola com fundo desfocado ---------- */
.modal,.sacola{backdrop-filter:blur(calc(var(--u)*10)) saturate(1.2);-webkit-backdrop-filter:blur(calc(var(--u)*10)) saturate(1.2)}
.modal:not([hidden]) .modal__caixa,.modal:not([hidden]) .foto-ampliada{animation:mv-modal .6s var(--mv-ease) both}
@keyframes mv-modal{from{opacity:0;translate:0 calc(var(--u)*30);scale:.96;filter:blur(calc(var(--u)*8))}}

/* ---------- detalhes ---------- */
.selo-linha::before{display:inline-block;animation:mv-flor 9s linear infinite}
@keyframes mv-flor{to{rotate:360deg}}
.faq details{transition:background-color .4s}
.faq details[open] p{animation:mv-abre .6s var(--mv-ease) both}
@keyframes mv-abre{from{opacity:0;translate:0 calc(var(--u)*-8);filter:blur(calc(var(--u)*6))}}
.ocasiao__ic{transition:all .5s var(--mv-mola)!important}
.ocasiao:hover .ocasiao__ic{rotate:-8deg;scale:1.08}
.insta__post,.insta__mini{transition:translate .6s var(--mv-ease),box-shadow .6s}
.insta__post:hover{translate:0 calc(var(--u)*-4);box-shadow:0 calc(var(--u)*20) calc(var(--u)*40) calc(var(--u)*-20) rgba(0,0,0,.6)}
.confianca{backdrop-filter:blur(calc(var(--u)*16)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--u)*16)) saturate(1.3)}

/* sem movimento para quem pediu */
@media (prefers-reduced-motion:reduce){
  .js [data-rv],.mv-pal{filter:none!important;clip-path:none!important;opacity:1!important;translate:none!important;rotate:none!important}
  .hero__foto img,.hero__polaroid,.mv-petala,.mv-aura::before,.mv-aura::after,.wa-flutua::before,.wa-flutua::after,.selo-linha::before{animation:none!important}
  .mv-petalas,.mv-progresso{display:none}
  .mv-tilt{transform:none!important}
}
/* celular: menos peso */
@media (max-width:639px){
  .mv-aura::before,.mv-aura::after{width:calc(var(--u)*300);filter:blur(calc(var(--u)*60))}
  .js [data-rv]{filter:blur(calc(var(--u)*6))}
}
