/* ==========================================================
   Camada de animações — carregada depois de styles.css
   ========================================================== */

/* ---------- Tela de abertura ---------- */
.intro-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:var(--green);transition:clip-path 1s cubic-bezier(.77,0,.18,1);clip-path:inset(0 0 0 0)}
.intro-loader.done{clip-path:inset(0 0 100% 0);pointer-events:none}
.intro-loader img{width:min(320px,70vw);opacity:0;transform:translateY(14px);animation:loaderLogo .9s .1s cubic-bezier(.2,.7,.2,1) forwards}
.intro-loader .loader-line{position:absolute;left:50%;bottom:calc(50% - 60px);width:160px;height:1px;margin-left:-80px;background:rgba(255,255,255,.15);overflow:hidden}
.intro-loader .loader-line::after{content:"";position:absolute;inset:0;background:var(--copper);transform:scaleX(0);transform-origin:left;animation:loaderBar 1.1s .2s ease-in-out forwards}
@keyframes loaderLogo{to{opacity:1;transform:none}}
@keyframes loaderBar{to{transform:scaleX(1)}}

/* ---------- Barra de progresso de leitura ---------- */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:200;background:linear-gradient(90deg,var(--copper),#ebb285);transform:scaleX(0);transform-origin:left;pointer-events:none}

/* ---------- Header ---------- */
.site-header{transition:box-shadow .4s ease,background .4s ease}
.site-header .nav-wrap,.site-header .brand img{transition:height .4s ease}
.site-header.scrolled{box-shadow:0 10px 30px rgba(15,30,24,.25)}
@media (min-width:761px){
  .site-header.scrolled .nav-wrap{height:70px}
  .site-header.scrolled .brand img{height:60px}
}

/* ---------- Hero ---------- */
.hero-bg::after{content:"";position:absolute;width:520px;height:520px;left:-120px;top:-140px;border-radius:50%;background:radial-gradient(circle,rgba(214,147,100,.22),transparent 65%);animation:orbFloat 14s ease-in-out infinite alternate}
@keyframes orbFloat{0%{transform:translate(0,0) scale(1)}50%{transform:translate(180px,120px) scale(1.15)}100%{transform:translate(60px,260px) scale(.95)}}

/* Título palavra por palavra */
.split-word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split-word>span{display:inline-block;transform:translateY(105%);transition:transform .9s cubic-bezier(.2,.75,.2,1);transition-delay:var(--wd,0ms)}
.page-ready .split-word>span{transform:none}

.hero .eyebrow,.hero-text,.hero-actions{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.hero .eyebrow{transition-delay:.15s}.hero-text{transition-delay:.85s}.hero-actions{transition-delay:1.05s}
.page-ready .hero .eyebrow,.page-ready .hero-text,.page-ready .hero-actions{opacity:1;transform:none}
.hero-copy.reveal{opacity:1;transform:none}

/* Retrato: revelação por cortina + respiração lenta */
.portrait-frame{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s .35s cubic-bezier(.77,0,.18,1)}
.page-ready .portrait-frame{clip-path:inset(0 0 0 0)}
.portrait-frame img{animation:kenBurns 18s ease-in-out infinite alternate}
@keyframes kenBurns{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
.hero-media::after{animation:squareDrift 7s ease-in-out infinite alternate}
@keyframes squareDrift{from{transform:translate(0,0) rotate(0)}to{transform:translate(-14px,16px) rotate(6deg)}}
.hero-media::before{content:"";position:absolute;width:90px;height:90px;left:-36px;bottom:-36px;border:1px solid rgba(37,58,50,.25);z-index:-1;animation:squareDrift 9s ease-in-out infinite alternate-reverse}
.hero-media .parallax-layer{transition:transform .6s cubic-bezier(.2,.7,.2,1)}

/* Eyebrow: traço que cresce */
.eyebrow{display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:0;height:1px;background:currentColor;transition:width .9s .2s cubic-bezier(.2,.7,.2,1)}
.visible .eyebrow::before,.eyebrow.visible::before,.page-ready .hero .eyebrow::before{width:34px}
.eyebrow>span:empty{display:none}

/* ---------- Revelações variadas ---------- */
.reveal{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1),filter .9s ease;transition-delay:var(--delay,0ms)}
.reveal-left{transform:translateX(-50px)}
.reveal-right{transform:translateX(50px)}
.reveal-zoom{transform:scale(.92)}
.reveal-blur{filter:blur(8px)}
.reveal.visible{transform:none;filter:none}

/* Imagens com cortina lateral */
.img-curtain{position:relative;overflow:hidden}
.img-curtain::after{content:"";position:absolute;inset:0;background:var(--copper);transform:scaleX(1);transform-origin:right;transition:transform 1.1s cubic-bezier(.77,0,.18,1) .15s;z-index:3;pointer-events:none}
.visible .img-curtain::after,.img-curtain.visible::after{transform:scaleX(0)}
.img-curtain img{transform:scale(1.18);transition:transform 1.6s cubic-bezier(.2,.7,.2,1) .2s}
.visible .img-curtain img,.img-curtain.visible img{transform:scale(1)}
.about-media .accent-box{transition:transform 1.2s .5s cubic-bezier(.2,.7,.2,1),opacity 1s .5s;opacity:0;transform:translate(-30px,-30px)}
.about-media.visible .accent-box{opacity:1;transform:none;animation:squareDrift 8s 1.8s ease-in-out infinite alternate}

/* Linhas de texto em títulos de seção */
.line-reveal{background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size 1.2s .4s cubic-bezier(.2,.7,.2,1)}
.visible .line-reveal,.line-reveal.visible{background-size:100% 1px}

/* ---------- Contador ---------- */
.counter{display:inline-block;min-width:1.2em;color:var(--copper-2,var(--copper));font-weight:700}

/* ---------- Faixa rolante ---------- */
.marquee{background:var(--green);color:#fff;overflow:hidden;padding:22px 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.marquee-track{display:flex;width:max-content;animation:marquee 38s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font-family:Georgia,serif;font-size:clamp(22px,2.6vw,34px);font-style:italic;white-space:nowrap;padding:0 28px;display:flex;align-items:center;gap:56px;color:rgba(255,255,255,.9)}
.marquee-track span::after{content:"✦";font-style:normal;font-size:.55em;color:var(--copper)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Cards de atuação ---------- */
.practice-grid{perspective:1200px}
.practice-card{transform-style:preserve-3d;overflow:hidden;--mx:50%;--my:50%}
.practice-card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(214,147,100,.16),transparent 45%);opacity:0;transition:opacity .4s ease;pointer-events:none}
.practice-card:hover::before{opacity:1}
.practice-card h3{position:relative}
.practice-card h3::before{content:"";position:absolute;left:0;top:-26px;width:28px;height:2px;background:var(--copper);transition:width .5s cubic-bezier(.2,.7,.2,1)}
.practice-card:hover h3::before{width:70px}
.practice-card .card-num{position:absolute;right:30px;top:26px;font-family:Georgia,serif;font-size:58px;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(214,147,100,.45);transition:transform .6s cubic-bezier(.2,.7,.2,1),color .4s}
.practice-card:hover .card-num{transform:translateY(-6px) scale(1.08);color:rgba(214,147,100,.12)}
.practice-card a{display:inline-flex;align-items:center;gap:8px}
.practice-card a::after{content:"→";transition:transform .35s ease}
.practice-card:hover a::after{transform:translateX(6px)}

/* ---------- Passos ---------- */
.steps>div{position:relative;border-bottom-color:transparent!important}
.steps>div::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.18);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 220ms + 300ms)}
.steps>div>span{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(214,147,100,.5);border-radius:50%;transform:scale(0) rotate(-90deg);transition:transform .7s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i,0) * 220ms + 200ms)}
.steps>div>p{opacity:0;transform:translateX(20px);transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 220ms + 350ms)}
.visible .steps>div::after{transform:scaleX(1)}
.visible .steps>div>span{transform:none}
.visible .steps>div>p{opacity:1;transform:none}
.steps>div:hover>span{background:var(--copper);color:var(--green);transition-delay:0s}

/* ---------- Contato ---------- */
.contact-list a{position:relative}
.contact-list a::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.contact-list a:hover::before{transform:scaleX(1)}
.contact-list.visible a{animation:slideIn .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 90ms + 150ms)}
@keyframes slideIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}

/* ---------- Botões magnéticos ---------- */
.magnetic{transition:transform .35s cubic-bezier(.2,.7,.2,1),background .2s,border-color .2s,color .2s!important}

/* ---------- WhatsApp flutuante ---------- */
.whatsapp-float{animation:waIn .8s 2s cubic-bezier(.34,1.56,.64,1) both}
.whatsapp-float::before,.whatsapp-float::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:waPulse 2.6s 3s ease-out infinite;pointer-events:none}
.whatsapp-float::after{animation-delay:4.3s}
@keyframes waIn{from{opacity:0;transform:scale(0) rotate(-180deg)}to{opacity:1;transform:none}}
@keyframes waPulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.9);opacity:0}}
.whatsapp-float svg{animation:waWiggle 6s 4s ease-in-out infinite}
@keyframes waWiggle{0%,90%,100%{transform:rotate(0)}92%{transform:rotate(-14deg)}94%{transform:rotate(12deg)}96%{transform:rotate(-8deg)}98%{transform:rotate(4deg)}}

/* ---------- Celular: animações mais leves, mas presentes ---------- */
@media (max-width:760px){
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease;transition-delay:min(var(--delay,0ms),150ms)}
  .reveal-left,.reveal-right,.reveal-zoom{transform:translateY(22px)}
  .reveal-blur{filter:none}
  .reveal.visible{opacity:1;transform:none}
  .hero-copy.reveal{opacity:1;transform:none}
  .hero-bg::after{display:none}
}

/* ---------- Respeito a quem prefere menos movimento ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .intro-loader{display:none}
  .split-word>span,.hero .eyebrow,.hero-text,.hero-actions,.steps>div>span,.steps>div>p,.reveal{opacity:1!important;transform:none!important;filter:none!important}
  .portrait-frame{clip-path:none}
  .img-curtain::after{display:none}
  .steps>div::after{transform:none}
  .scroll-progress{display:none}
}
