/* =====================================================================
   NovaWebDesign — mecanica comună a efectelor (BUSINESS + PREMIUM).
   Culorile și aspectul fiecărui efect stau în tema exemplului.
   Doar transform + opacity.
   ===================================================================== */

/* ---------- Bara de progres la derulare ---------- */
.scroll-progress {
  position: fixed;
  z-index: 1000;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  pointer-events: none;
}

.scroll-progress span {
  display: block;
  height: 100%;
  background: var(--progress, linear-gradient(90deg, #8B5CF6, #22D3EE));
  transform: scaleX(0);
  transform-origin: 0 50%;
  will-change: transform;
}

/* Browserele noi: animație legată direct de derulare, fără JavaScript */
.sda .scroll-progress span {
  animation: novaProgress linear both;
  animation-timeline: scroll(root block);
}

@keyframes novaProgress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

/* ---------- Titluri care apar cuvânt cu cuvânt ---------- */
.js .reveal[data-split] {
  opacity: 1;
  transform: none;
}

/* Spațiu suplimentar sus/jos, ca diacriticele (Î, Ă, ș, ț) să nu fie tăiate */
.is-split .w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding: 0.16em 0.04em 0.2em;
  margin: -0.16em -0.04em -0.2em;
}

.is-split .wi {
  display: inline-block;
  transform: translate3d(0, 115%, 0);
  transition: transform 1s var(--ease-out);
  transition-delay: calc(var(--split-delay, 0ms) + var(--wi, 0) * 60ms);
}

.is-split.is-in .wi {
  transform: none;
}

/* ---------- Înclinare pe desktop ---------- */
.pointer-fine [data-tilt] {
  will-change: transform;
}

[data-tilt].is-tilting {
  transition: transform 0.14s linear !important;
}

/* ---------- Contoare: cifre de lățime egală, fără „tremur" ---------- */
[data-count] {
  font-variant-numeric: tabular-nums;
}

/* ---------- Animații oprite când nu se văd ---------- */
.is-paused,
.is-paused::before,
.is-paused::after,
.is-paused *,
.is-paused *::before,
.is-paused *::after,
.is-hidden-tab *,
.is-hidden-tab *::before,
.is-hidden-tab *::after {
  animation-play-state: paused !important;
}

/* ---------- Mișcare redusă: totul vizibil, nimic nu se mișcă ---------- */
@media (prefers-reduced-motion: reduce) {
  .scroll-progress span {
    will-change: auto;
  }
}
