/* ═══════════════════════════════════════════════════════════════
   TGIC — Animations & Motion  |  campus.ivirth.in
═══════════════════════════════════════════════════════════════ */

/* ── Fade In Up (scroll reveal) ─────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1),
              transform 0.7s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }
.reveal-delay-6 { transition-delay: 0.6s; }
.reveal-delay-7 { transition-delay: 0.7s; }

/* ── Fade In ─────────────────────────────────────────────────── */
.fade-in {
  opacity: 0;
  transition: opacity 0.8s ease;
}
.fade-in.visible { opacity: 1; }

/* ── Gold shimmer text ───────────────────────────────────────── */
@keyframes gold-shimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}
.shimmer-text {
  background: linear-gradient(
    90deg,
    var(--gold-muted) 0%,
    var(--gold-shine) 30%,
    var(--gold-primary) 50%,
    var(--gold-shine) 70%,
    var(--gold-muted) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gold-shimmer 4s linear infinite;
}

/* ── Floating animation ──────────────────────────────────────── */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-12px); }
}
.float { animation: float 6s ease-in-out infinite; }

/* ── Scale In ────────────────────────────────────────────────── */
.scale-in {
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.16,1,0.3,1);
}
.scale-in.visible { opacity: 1; transform: scale(1); }

/* ── Counter animation ───────────────────────────────────────── */
.count-up { display: inline-block; }

/* ── Gold border glow pulse ──────────────────────────────────── */
@keyframes border-glow {
  0%, 100% { box-shadow: 0 0 10px rgba(201,168,76,0.1); }
  50%       { box-shadow: 0 0 30px rgba(201,168,76,0.3); }
}
.border-glow-anim { animation: border-glow 3s ease-in-out infinite; }

/* ── Stagger children ────────────────────────────────────────── */
.stagger-children > * { opacity: 0; transform: translateY(20px); }
.stagger-children.visible > *:nth-child(1)  { animation: staggerReveal 0.5s 0.05s forwards cubic-bezier(0.16,1,0.3,1); }
.stagger-children.visible > *:nth-child(2)  { animation: staggerReveal 0.5s 0.12s forwards cubic-bezier(0.16,1,0.3,1); }
.stagger-children.visible > *:nth-child(3)  { animation: staggerReveal 0.5s 0.19s forwards cubic-bezier(0.16,1,0.3,1); }
.stagger-children.visible > *:nth-child(4)  { animation: staggerReveal 0.5s 0.26s forwards cubic-bezier(0.16,1,0.3,1); }
.stagger-children.visible > *:nth-child(5)  { animation: staggerReveal 0.5s 0.33s forwards cubic-bezier(0.16,1,0.3,1); }
.stagger-children.visible > *:nth-child(6)  { animation: staggerReveal 0.5s 0.40s forwards cubic-bezier(0.16,1,0.3,1); }
.stagger-children.visible > *:nth-child(7)  { animation: staggerReveal 0.5s 0.47s forwards cubic-bezier(0.16,1,0.3,1); }

@keyframes staggerReveal {
  to { opacity: 1; transform: translateY(0); }
}

/* ── Page transition ─────────────────────────────────────────── */
@keyframes pageIn {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
#main-content { animation: pageIn 0.4s ease forwards; }

/* ── Loading skeleton ────────────────────────────────────────── */
.skeleton {
  background: linear-gradient(90deg, var(--black-card) 25%, var(--black-hover) 50%, var(--black-card) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite;
  border-radius: var(--radius-sm);
}
@keyframes skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── Orbit ring (decorative) ──────────────────────────────────── */
@keyframes orbit {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.orbit-ring {
  border-radius: 50%;
  border: 1px solid rgba(201,168,76,0.15);
  animation: orbit 20s linear infinite;
}

/* ── Nav scroll effect ────────────────────────────────────────── */
.site-header { transition: background 0.3s ease, box-shadow 0.3s ease; }
