:root{
  --evoe-orange:#E94E1B;
  --evoe-graphite:#3E4A43;
  --evoe-ink:#3C3C3B;
  --evoe-paper:#F2F0E9;
  --evoe-beige:#CBBBA0;
  --evoe-shadow:0 18px 40px rgba(0,0,0,.10);
  --evoe-ease:cubic-bezier(.2,.8,.2,1);
}

html{scroll-behavior:smooth;}
body{-webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;}

/* Suavidade geral (sem ficar "enjoativo") */
a,button,[role="button"],input,textarea,select{
  transition-property:background-color,border-color,color,opacity,transform,box-shadow,filter;
  transition-duration:260ms;
  transition-timing-function:var(--evoe-ease);
}

/* Ajuste: animações existentes mais suaves */
.fade-in-section{
  opacity:0;
  transform:translateY(14px);
  transition:opacity 950ms var(--evoe-ease), transform 950ms var(--evoe-ease);
  will-change:opacity,transform;
}
.fade-in-section.is-visible{opacity:1; transform:none;}

/* Blob menos "agitado" */
.mask-blob{animation-duration:18s !important; filter:saturate(0.98) contrast(1.02);}

/* Ken Burns leve no hero (se existir) */
@keyframes kenBurns{
  0%{transform:scale(1.03) translateY(0px);}
  100%{transform:scale(1.10) translateY(-12px);}
}

/* Preloader / Splash */
#evoe-preloader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background: radial-gradient(1200px 600px at 50% 30%, rgba(233,78,27,.10), transparent 60%),
              radial-gradient(900px 600px at 20% 80%, rgba(146,166,131,.14), transparent 60%),
              var(--evoe-paper);
  transition:opacity 520ms var(--evoe-ease), visibility 520ms var(--evoe-ease);
}
#evoe-preloader .evoe-preloader-card{
  width:min(520px, calc(100% - 48px));
  padding:28px 26px;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(255,255,255,.52);
  backdrop-filter:blur(12px);
  box-shadow:0 22px 60px rgba(0,0,0,.10);
}
#evoe-preloader .evoe-mark{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}
#evoe-preloader img{
  height:44px;
  width:auto;
  opacity:.95;
  animation:evoe-float 3.6s var(--evoe-ease) infinite;
}
#evoe-preloader .evoe-ring{
  width:16px;
  height:16px;
  border-radius:999px;
  border:2px solid rgba(60,60,59,.22);
  border-top-color:rgba(233,78,27,.85);
  animation:evoe-spin 1.25s linear infinite;
}
#evoe-preloader .evoe-loading-text{
  margin-top:12px;
  font-family:Oswald, sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:12px;
  color:rgba(60,60,59,.70);
  text-align:center;
}

body.evoe-loaded #evoe-preloader{opacity:0; visibility:hidden; pointer-events:none;}

@keyframes evoe-spin{to{transform:rotate(360deg);}}
@keyframes evoe-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-3px);}}

/* Modal/Lightbox com transição suave */
.evoe-modal{opacity:0; pointer-events:none; transition:opacity 260ms var(--evoe-ease);} 
.evoe-modal.is-open{opacity:1; pointer-events:auto;}
.evoe-modal .evoe-modal-backdrop{opacity:0; transition:opacity 260ms var(--evoe-ease);} 
.evoe-modal.is-open .evoe-modal-backdrop{opacity:1;}
.evoe-modal .evoe-modal-panel{opacity:0; transform:translateY(10px) scale(.985); transition:opacity 360ms var(--evoe-ease), transform 360ms var(--evoe-ease);} 
.evoe-modal.is-open .evoe-modal-panel{opacity:1; transform:none;}

/* Carrossel: evita conflito com scroll-smooth quando usamos animação custom */
#portfolioCarousel{scroll-behavior:auto;}


/* Botões e hovers menos agressivos */
.btn-evoe:hover{transform:translateY(-1px) !important; box-shadow:0 14px 28px rgba(0,0,0,.08) !important;}
.btn-evoe{transition-duration:280ms !important;}
.nav-link::after{transition-duration:320ms !important;}

/* Respeita acessibilidade */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *, *::before, *::after{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  #evoe-preloader img{animation:none !important;}
}
