/* ═══════════════════════════════════════════════════════════
   animations.css — Keyframes & classes scroll
═══════════════════════════════════════════════════════════ */

/* ─── HERO REVEAL ────────────────────────────────────────── */
.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1);
}
.reveal.visible { opacity: 1; transform: translateY(0); }

.hero-content .reveal:nth-child(1) { transition-delay: .05s; }
.hero-content .reveal:nth-child(2) { transition-delay: .2s; }
.hero-content .reveal:nth-child(3) { transition-delay: .35s; }
.hero-content .reveal:nth-child(4) { transition-delay: .5s; }
.hero-content .reveal:nth-child(5) { transition-delay: .65s; }
.hero-content .reveal:nth-child(6) { transition-delay: .8s; }

/* ─── SCROLL ANIMATIONS ──────────────────────────────────── */
.fade-up {
  opacity: 0; transform: translateY(36px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1);
}
.fade-up.in-view { opacity: 1; transform: translateY(0); }

.fade-left {
  opacity: 0; transform: translateX(-36px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1);
}
.fade-left.in-view { opacity: 1; transform: translateX(0); }

.fade-right {
  opacity: 0; transform: translateX(36px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1);
}
.fade-right.in-view { opacity: 1; transform: translateX(0); }

/* Cascade enfants */
.ach-card.fade-up:nth-child(1) { transition-delay: 0s; }
.ach-card.fade-up:nth-child(2) { transition-delay: .1s; }
.ach-card.fade-up:nth-child(3) { transition-delay: .2s; }
.ach-card.fade-up:nth-child(4) { transition-delay: .1s; }
.ach-card.fade-up:nth-child(5) { transition-delay: .2s; }
.ach-card.fade-up:nth-child(6) { transition-delay: .3s; }

.tl-item.fade-up:nth-child(1) { transition-delay: 0s; }
.tl-item.fade-up:nth-child(2) { transition-delay: .1s; }
.tl-item.fade-up:nth-child(3) { transition-delay: .2s; }
.tl-item.fade-up:nth-child(4) { transition-delay: .3s; }
.tl-item.fade-up:nth-child(5) { transition-delay: .1s; }
.tl-item.fade-up:nth-child(6) { transition-delay: .2s; }
.tl-item.fade-up:nth-child(7) { transition-delay: .3s; }
.tl-item.fade-up:nth-child(8) { transition-delay: .4s; }

.proj-card.fade-up:nth-child(1) { transition-delay: 0s; }
.proj-card.fade-up:nth-child(2) { transition-delay: .12s; }
.proj-card.fade-up:nth-child(3) { transition-delay: .24s; }
.proj-card.fade-up:nth-child(4) { transition-delay: .36s; }

/* ─── KEYFRAMES ──────────────────────────────────────────── */

@keyframes scrollPulse {
  0%,100% { opacity: 1; transform: scaleY(1); }
  50%      { opacity: .35; transform: scaleY(.6); }
}

@keyframes rotateRing {
  from { transform: translate(-50%,-50%) rotate(0deg); }
  to   { transform: translate(-50%,-50%) rotate(360deg); }
}

@keyframes pulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .4; transform: scale(1.5); }
}

@keyframes glowPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(201,168,76,.4); }
  50%      { box-shadow: 0 0 0 10px rgba(201,168,76,0); }
}

/* Shimmer doré sur le nom hero */
@keyframes shimmer {
  0%   { background-position: -200% center; }
  100% { background-position:  200% center; }
}

.hero-name .gold {
  background: linear-gradient(
    90deg, var(--gold-d) 0%, var(--gold-l) 40%, var(--gold-d) 80%, var(--gold-l) 100%
  );
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 4s linear infinite;
}

/* ─── MICRO-INTERACTIONS ─────────────────────────────────── */
.tl-card, .proj-card, .ach-card, .pillar, .formation-card { will-change: transform; }
.sb-fill { will-change: width; }
