/* Geovani Capital motion layer for the public site.
   Adds movement only: every element ends in exactly the approved resting state.
   Disabled automatically for prefers-reduced-motion, and nothing is hidden when JavaScript is off. */

:root { --gc-ease: cubic-bezier(.2, .7, .2, 1); }

/* ---------- Page-load sequence (html.gc-load is set in <head> before first paint) ---------- */
.gc-load .hero .slide.on > * { animation: gc-up .8s var(--gc-ease) both; }
.gc-load .hero .slide.on > *:nth-child(2) { animation-delay: .08s; }
.gc-load .hero .slide.on > *:nth-child(3) { animation-delay: .16s; }
.gc-load .hero .slide.on > *:nth-child(4) { animation-delay: .24s; }
.gc-load .hero .slide.on > *:nth-child(n+5) { animation-delay: .32s; }
.gc-load .hero-figure img { animation: gc-unveil 1.4s var(--gc-ease) .1s both; }
.gc-load .phero-in > * { animation: gc-up .75s var(--gc-ease) both; }
.gc-load .phero-in > *:nth-child(2) { animation-delay: .08s; }
.gc-load .phero-in > *:nth-child(3) { animation-delay: .16s; }
.gc-load .phero-in > *:nth-child(n+4) { animation-delay: .24s; }
.gc-load .phero .bg img { animation: gc-drift 2.4s var(--gc-ease) both; }

/* ---------- Scroll reveals (classes added by js/motion.js only to elements below the fold) ---------- */
.gc-rv { opacity: 0; transform: translateY(26px); }
.gc-rv.gc-in {
  opacity: 1;
  transform: none;
  transition: opacity .7s var(--gc-ease), transform .7s var(--gc-ease);
  transition-delay: calc(var(--gc-d, 0) * 80ms);
}
.gc-rv-rule { transform-origin: left; }
.gc-rv.gc-rv-rule { opacity: 1; transform: scaleX(0); }
.gc-rv.gc-rv-rule.gc-in { transform: scaleX(1); transition: transform .9s var(--gc-ease) .2s; }

/* ---------- Hover feedback on things people click ---------- */
.ccard { transition: border-color .2s, box-shadow .2s, transform .25s var(--gc-ease); }
.ccard:hover { transform: translateY(-3px); }
.way { transition: transform .3s var(--gc-ease), box-shadow .3s var(--gc-ease); }
.way:hover { transform: translateY(-4px); box-shadow: 0 30px 50px -30px rgba(0, 0, 0, .6); }
.way img { transition: transform .8s var(--gc-ease); }
.way:hover img { transform: scale(1.05); }
.card-img:hover img { transform: scale(1.05); }
.tile, .help-card, .rb { transition: transform .3s var(--gc-ease), box-shadow .3s var(--gc-ease); }
.tile:hover, .help-card:hover { transform: translateY(-3px); box-shadow: 0 22px 40px -28px rgba(11, 31, 63, .45); }
.btn-gold:hover { box-shadow: 0 12px 26px -12px rgba(242, 176, 0, .75); }

/* ---------- Scroll progress and back to top ---------- */
.gc-progress {
  position: fixed;
  inset: 0 0 auto 0;
  height: 3px;
  z-index: 60;
  pointer-events: none;
  background: linear-gradient(90deg, var(--gold-500, #F2B000), var(--gold-300, #FFD66B));
  transform-origin: left;
  transform: scaleX(var(--gc-p, 0));
}
.gc-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 55;
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  color: var(--gold-400, #FFC62E);
  background: var(--navy-900, #0B1F3F);
  box-shadow: 0 14px 30px -14px rgba(6, 20, 43, .8), inset 0 0 0 1px rgba(255, 198, 46, .35);
  opacity: 0;
  transform: translateY(16px) scale(.9);
  pointer-events: none;
  transition: opacity .3s var(--gc-ease), transform .3s var(--gc-ease), background-color .2s;
}
.gc-top.gc-show { opacity: 1; transform: none; pointer-events: auto; }
.gc-top:hover { background: var(--navy-800, #132E5A); }
@media (max-width: 640px) { .gc-top { right: 14px; bottom: 14px; width: 44px; height: 44px; } }

@keyframes gc-up { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes gc-unveil { from { opacity: 0; transform: scale(1.06); filter: saturate(.6); } to { opacity: 1; transform: none; filter: none; } }
@keyframes gc-drift { from { transform: scale(1.08); } to { transform: none; } }

@media (prefers-reduced-motion: reduce) {
  .gc-rv { opacity: 1 !important; transform: none !important; }
  .gc-progress { display: none; }
}
