/* 3hrs.ng — animation enhancements (additive) */

/* Scroll progress bar */
.scroll-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0;
  background: linear-gradient(90deg, var(--orange), #ff8a4c);
  z-index: 9999; transition: width .1s linear; pointer-events: none;
}

/* Staggered reveal items */
.stagger-item {
  opacity: 0; transform: translateY(24px);
  transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
}
.stagger-item.in { opacity: 1; transform: none; }

/* Tilt / magnetic smoothing */
[data-tilt] { transition: transform .25s cubic-bezier(.2,.7,.2,1); transform-style: preserve-3d; }
.btn-primary, [data-magnetic] { transition: transform .2s cubic-bezier(.2,.7,.2,1), background .2s, box-shadow .2s; }

/* Floating loop (badges, accents) */
@keyframes threehrs-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.is-floating { animation: threehrs-float 4.5s ease-in-out infinite; }

/* Active nav link underline grow */
.links a { position: relative; }
.links a:after {
  content: ""; position: absolute; left: 0; bottom: -6px; height: 2px; width: 0;
  background: var(--orange); transition: width .3s ease;
}
.links a:hover:after, .links a.is-current:after { width: 100%; }

/* Reveal direction helpers (optional, used via data-reveal-dir) */
[data-reveal][data-reveal-dir="left"] { transform: translateX(-40px); }
[data-reveal][data-reveal-dir="right"] { transform: translateX(40px); }
[data-reveal].is-visible { transform: none; }

/* Button shine sweep on hover */
.btn-primary { position: relative; overflow: hidden; }
.btn-primary:before {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-18deg); transition: left .6s ease;
}
.btn-primary:hover:before { left: 130%; }

/* Image hover zoom for cards/galleries */
.postCard img, .gallery-item img, .svc-card img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.postCard:hover img, .gallery-item:hover img, .svc-card:hover img { transform: scale(1.06); }

@media (prefers-reduced-motion: reduce) {
  .scroll-progress, .is-floating, .btn-primary:before { animation: none !important; transition: none !important; }
  .stagger-item { opacity: 1 !important; transform: none !important; }
}
