/* ============================================================
   about-animations.css  |  Movina Values
   Link in about.html <head> AFTER escripts.css
   ============================================================ */


/* ── 1. Scroll-reveal base ── */
[data-reveal] {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}
[data-reveal="left"]  { transform: translateX(-40px); opacity: 0; }
[data-reveal="right"] { transform: translateX(40px);  opacity: 0; }
[data-reveal="scale"] { transform: scale(0.92);       opacity: 0; }
[data-reveal].is-visible {
  opacity: 1 !important;
  transform: none !important;
}
[data-delay="100"] { transition-delay: 0.10s; }
[data-delay="150"] { transition-delay: 0.15s; }
[data-delay="200"] { transition-delay: 0.20s; }
[data-delay="300"] { transition-delay: 0.30s; }
[data-delay="400"] { transition-delay: 0.40s; }
[data-delay="500"] { transition-delay: 0.50s; }


/* ── 2. Navbar scroll-shrink ── */
#navbar {
  transition: padding 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}
#navbar.scrolled {
  padding: 4px 0;
  box-shadow: 0 4px 24px rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.97);
}


/* ── 3. About hero entrance ── */
.about-hero .brand-title {
  opacity: 0;
  transform: translateY(28px);
  animation: slide-up 0.7s 0.2s cubic-bezier(0.22,1,0.36,1) forwards;
}
.about-hero .tagline {
  opacity: 0;
  transform: translateY(28px);
  animation: slide-up 0.7s 0.4s cubic-bezier(0.22,1,0.36,1) forwards;
}
.about-hero .description {
  opacity: 0;
  transform: translateY(28px);
  animation: slide-up 0.7s 0.6s cubic-bezier(0.22,1,0.36,1) forwards;
}
@keyframes slide-up {
  to { opacity: 1; transform: none; }
}

/* Animated yellow underline on hero tagline */
.about-hero .tagline {
  position: relative;
  display: inline-block;
}
.about-hero .tagline::after {
  content: "";
  display: block;
  height: 4px;
  width: 0;
  background: #FAC60A;
  border-radius: 999px;
  margin: 10px auto 0;
  animation: underline-in 0.9s 1.1s cubic-bezier(0.22,1,0.36,1) forwards;
}
@keyframes underline-in { to { width: 70%; } }


/* ── 4. VM cards hover lift ── */
.vm-card {
  transition: transform 0.35s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.35s ease;
  cursor: default;
}
.vm-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 24px 50px rgba(74,94,122,0.14);
}


/* ── 5. Principles row stagger ── */
.principles-row .p-item {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.55s cubic-bezier(0.22,1,0.36,1),
              transform 0.55s cubic-bezier(0.22,1,0.36,1);
}
.principles-row .p-item.is-visible {
  opacity: 1;
  transform: none;
}
/* Big number counter-reveal */
.p-num {
  transition: color 0.6s ease;
}
.p-item.is-visible .p-num {
  color: rgba(59,130,246,0.18);
  animation: num-glow 1.2s ease forwards;
}
@keyframes num-glow {
  0%   { color: rgba(250,198,10,0.55); }
  100% { color: rgba(59,130,246,0.18); }
}


/* ── 6. Why-cards 3-D tilt ── */
.why-card {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.55s cubic-bezier(0.22,1,0.36,1),
              transform 0.55s cubic-bezier(0.22,1,0.36,1),
              box-shadow 0.3s ease;
  transform-style: preserve-3d;
  will-change: transform;
  cursor: default;
}
.why-card.is-visible {
  opacity: 1;
  transform: none;
}
.why-card:hover {
  box-shadow: 0 18px 40px rgba(74,94,122,0.13);
}


/* ── 7. Team cards stagger + overlay polish ── */
.team-card {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.6s cubic-bezier(0.22,1,0.36,1),
              transform 0.6s cubic-bezier(0.22,1,0.36,1);
}
.team-card.is-visible {
  opacity: 1;
  transform: none;
}
/* Smoother overlay slide */
.member-overlay {
  transition: bottom 0.55s cubic-bezier(0.22,1,0.36,1);
}
.overlay-content {
  transition: opacity 0.4s ease 0.18s;
}


/* ── 8. IMPC timeline animated connector ── */
.impc-timeline {
  position: relative;
}
.impc-timeline::before {
  content: "";
  position: absolute;
  top: 20px;
  left: 10%;
  right: 10%;
  height: 3px;
  background: #e2e8f0;
  border-radius: 999px;
  z-index: 0;
}
.impc-timeline::after {
  content: "";
  position: absolute;
  top: 20px;
  left: 10%;
  width: 0%;
  height: 3px;
  background: linear-gradient(90deg, #FAC60A, #4A5E7A);
  border-radius: 999px;
  z-index: 1;
  transition: width 1.5s cubic-bezier(0.22,1,0.36,1);
}
.impc-timeline.line-animate::after {
  width: 80%;
}
.timeline-item { position: relative; z-index: 2; }

.month-pill {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.month-pill:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 22px rgba(109,133,168,0.28);
}
.theme-box {
  transition: border-color 0.3s ease, transform 0.3s ease;
}
.theme-box:hover {
  border-color: #FAC60A;
  transform: translateY(-4px);
}


/* ── 9. Objectives grid stagger ── */
.obj-card {
  opacity: 0;
  transform: translateY(24px) scale(0.97);
  transition: opacity 0.5s cubic-bezier(0.22,1,0.36,1),
              transform 0.5s cubic-bezier(0.22,1,0.36,1);
}
.obj-card.is-visible {
  opacity: 1;
  transform: none;
}
.obj-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(74,94,122,0.10);
}


/* ── 10. Section-intro brand-title underline ── */
.section-intro .brand-title {
  position: relative;
  display: inline-block;
}
.section-intro .brand-title::after {
  content: "";
  display: block;
  height: 3px;
  width: 0;
  background: #FAC60A;
  border-radius: 999px;
  margin: 8px auto 0;
  transition: width 0.8s cubic-bezier(0.22,1,0.36,1);
}
.section-intro.is-visible .brand-title::after {
  width: 60%;
}


/* ── 11. Footer column stagger ── */
.footer-column {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.footer-column.is-visible {
  opacity: 1;
  transform: none;
}


/* ── 12. Button ripple ── */
.btn-nav-primary,
.btn-main,
.btn-submit,
.btn-primary,
.btn-pager,
.read-more-btn,
.filter-btn,
.cta {
  position: relative;
  overflow: hidden;
}
.ripple {
  position: absolute;
  border-radius: 50%;
  transform: scale(0);
  animation: ripple-anim 0.55s linear;
  background: rgba(255,255,255,0.32);
  pointer-events: none;
}
@keyframes ripple-anim {
  to { transform: scale(4); opacity: 0; }
}


/* ── 13. Reduced-motion override ── */
@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  .about-hero .brand-title,
  .about-hero .tagline,
  .about-hero .description,
  .about-hero .tagline::after,
  .vm-card, .why-card, .p-item,
  .team-card, .obj-card, .footer-column,
  .impc-timeline::after,
  .section-intro .brand-title::after,
  .ripple {
    transition: none !important;
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    width: auto !important;
  }
}
