/* Pine scroll-reveal animations (offline, no external libs) */

/* Hiding is only applied when JS confirms support, so content stays visible without JS */
html.js-scroll-anim [data-reveal],
html.js-scroll-anim [data-letters] .r-letter {
  opacity: 0;
}

html.js-scroll-anim [data-reveal] {
  transition: opacity 0.9s cubic-bezier(0.16, 0.84, 0.3, 1), transform 0.9s cubic-bezier(0.16, 0.84, 0.3, 1);
  will-change: opacity, transform;
}
html.js-scroll-anim [data-reveal="up"] { transform: translate3d(0, 52px, 0); }
html.js-scroll-anim [data-reveal="left"] { transform: translate3d(-64px, 0, 0); }
html.js-scroll-anim [data-reveal="right"] { transform: translate3d(64px, 0, 0); }
html.js-scroll-anim [data-reveal="zoom"] { transform: scale(0.9); }
html.js-scroll-anim [data-reveal].in-view { opacity: 1; transform: none; }

html.js-scroll-anim [data-reveal-delay="1"] { transition-delay: 0.05s; }
html.js-scroll-anim [data-reveal-delay="2"] { transition-delay: 0.18s; }
html.js-scroll-anim [data-reveal-delay="3"] { transition-delay: 0.32s; }
html.js-scroll-anim [data-reveal-delay="4"] { transition-delay: 0.46s; }
html.js-scroll-anim [data-reveal-delay="5"] { transition-delay: 0.6s; }

/* Letter-by-letter heading reveal (nyatwa style) */
html.js-scroll-anim .r-letter {
  display: inline-block;
  transform: translate3d(0, 0.6em, 0);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.16, 0.84, 0.3, 1);
  transition-delay: calc(var(--i, 0) * 0.03s);
  will-change: opacity, transform;
}
html.js-scroll-anim [data-letters].in-view .r-letter { opacity: 1; transform: none; }
html.js-scroll-anim .r-space { display: inline; }

/* Gentle continuous float for hero imagery */
html.js-scroll-anim .r-float {
  animation: rFloat 6s ease-in-out infinite;
}
@keyframes rFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-16px); }
}

@media (prefers-reduced-motion: reduce) {
  html.js-scroll-anim [data-reveal],
  html.js-scroll-anim .r-letter,
  html.js-scroll-anim .r-float {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}

/* Nyatwa-style sticky scroll track with full viewport boundaries */
.pine-nyatwa-scroll-track {
  position: relative;
  height: 210vh;
  width: 100%;
  margin-top: 0;
}

.pine-nyatwa-scroll-track > .elementor-element-13ceeb1 {
  position: sticky;
  top: 0;
  height: 100vh;
  padding-top: 15px !important;
  padding-bottom: 15px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: hidden;
  z-index: 10;
}

/* Prevent excessive vertical offsets & fit phone image perfectly */
.pine-nyatwa-scroll-track .elementor-element-cc9acba .elementor-widget-container {
  transform: none !important;
  --translateY: 0px !important;
}

.pine-nyatwa-scroll-track .elementor-element-cc9acba img {
  max-height: 58vh !important;
  width: auto !important;
  object-fit: contain !important;
}

.pine-nyatwa-scroll-track .elementor-element-ccf6e61 {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  padding-top: 0 !important;
}

@media (max-width: 767px) {
  .pine-nyatwa-scroll-track {
    height: auto;
  }
  .pine-nyatwa-scroll-track > .elementor-element-13ceeb1 {
    position: relative;
    top: auto;
    height: auto;
    padding-top: 15px !important;
    padding-bottom: 15px !important;
  }
  .pine-nyatwa-scroll-track .elementor-element-cc9acba img {
    max-height: 45vh !important;
  }
}







