/* ISHALC — efeitos de transição e rolagem do site (EM TESTE / reversível).
   Reverter: remover os includes de ishalc-fx.css e ishalc-fx.js das páginas,
   ou reverter o commit correspondente. */
html { scroll-behavior: smooth; }

/* Revelar ao rolar (variações aplicadas pelo JS) */
.fx-reveal { opacity: 0; transform: translateY(30px); filter: blur(6px);
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1), filter .8s ease;
  will-change: opacity, transform, filter; }
.fx-reveal.fx-left  { transform: translateX(-40px); }
.fx-reveal.fx-right { transform: translateX(40px); }
.fx-reveal.fx-zoom  { transform: scale(.92); }
.fx-reveal.fx-in    { opacity: 1; transform: none; filter: blur(0); }

/* Barra de progresso de rolagem (com shimmer) */
.fx-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%;
  transform: scaleX(0); transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--cyan,#49c5e8), var(--teal,#1c7c74), var(--cyan,#49c5e8));
  background-size: 200% 100%; animation: fx-shimmer 3s linear infinite;
  z-index: 9999; transition: transform .12s linear; pointer-events: none; }
@keyframes fx-shimmer { to { background-position: 200% 0; } }

/* Micro-interações nos cards */
.blog-card, .glass-card { transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease; }
.blog-card:hover, .glass-card:hover { transform: translateY(-6px) scale(1.012);
  box-shadow: 0 18px 40px -18px rgba(28,124,116,.5); }
.blog-card img, .glass-card img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.blog-card:hover img, .glass-card:hover img { transform: scale(1.06); }

/* Elevação do topo/cabeçalho ao rolar */
.topbar, header.site { transition: box-shadow .3s ease, backdrop-filter .3s ease; }
.fx-scrolled { box-shadow: 0 10px 30px -18px rgba(0,0,0,.55); backdrop-filter: saturate(1.1) blur(2px); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fx-reveal { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
  .fx-progress { display: none; animation: none; }
  .blog-card, .glass-card, .blog-card img, .glass-card img { transition: none; }
  .blog-card:hover, .glass-card:hover { transform: none; box-shadow: none; }
  .blog-card:hover img, .glass-card:hover img { transform: none; }
}
