/* =============================================
   ROMANTIC FLOWER WEBSITE — ANIMATIONS.CSS
   ============================================= */

/* ===========================
   GIFT OPEN ANIMATION
   =========================== */
@keyframes lid-fly {
  0%   { transform: translateY(0) rotate(0deg); opacity: 1; }
  40%  { transform: translateY(-120px) rotate(-25deg); opacity: 1; }
  100% { transform: translateY(-300px) rotate(-50deg) scale(0.3); opacity: 0; }
}

@keyframes gift-shake {
  0%,100% { transform: rotate(0deg); }
  20%     { transform: rotate(-4deg); }
  40%     { transform: rotate(4deg); }
  60%     { transform: rotate(-3deg); }
  80%     { transform: rotate(3deg); }
}

@keyframes bloom-burst {
  0%   { opacity: 0; transform: translate(-50%,-50%) scale(0) rotate(0deg); }
  40%  { opacity: 1; transform: translate(var(--tx), var(--ty)) scale(1.2) rotate(var(--rot)); }
  80%  { opacity: 0.9; transform: translate(var(--tx2), var(--ty2)) scale(1) rotate(var(--rot2)); }
  100% { opacity: 0; transform: translate(var(--tx3), var(--ty3)) scale(0.8) rotate(var(--rot3)); }
}

/* ===========================
   SECTION REVEAL
   =========================== */
@keyframes slide-in-left {
  from { opacity: 0; transform: translateX(-50px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes slide-in-right {
  from { opacity: 0; transform: translateX(50px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes zoom-in {
  from { opacity: 0; transform: scale(0.85); }
  to   { opacity: 1; transform: scale(1); }
}

/* ===========================
   FLOATING PARTICLES
   =========================== */
@keyframes particle-float {
  0%   { transform: translateY(0) translateX(0) scale(1); opacity: 0.8; }
  25%  { transform: translateY(-30px) translateX(15px) scale(1.05); }
  50%  { transform: translateY(-10px) translateX(-10px) scale(0.95); opacity: 0.5; }
  75%  { transform: translateY(-40px) translateX(20px) scale(1.02); }
  100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.8; }
}

/* ===========================
   GLOW PULSE
   =========================== */
@keyframes glow-pulse {
  0%,100% { box-shadow: 0 0 20px rgba(232,105,138,0.3), 0 0 40px rgba(232,105,138,0.1); }
  50%      { box-shadow: 0 0 40px rgba(232,105,138,0.6), 0 0 80px rgba(232,105,138,0.25), 0 0 120px rgba(232,105,138,0.1); }
}
.glow-pulse { animation: glow-pulse 3s ease-in-out infinite; }

/* ===========================
   INTRO SCENE ENTRANCE
   =========================== */
@keyframes intro-entrance {
  from { opacity: 0; transform: scale(0.7) translateY(40px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
#gift-wrapper { animation: intro-entrance 1.2s cubic-bezier(0.34,1.56,0.64,1) 0.3s both; }

/* ===========================
   SPARKLE STARS
   =========================== */
@keyframes sparkle {
  0%,100% { opacity: 0; transform: scale(0) rotate(0deg); }
  50%      { opacity: 1; transform: scale(1) rotate(180deg); }
}
.sparkle {
  position: absolute;
  pointer-events: none;
  animation: sparkle ease-in-out infinite;
}

/* ===========================
   INTRO BG PULSE
   =========================== */
@keyframes intro-bg-pulse {
  0%,100% { background: linear-gradient(135deg, #1a0510, #3d0f25 40%, #1e0815); }
  50%      { background: linear-gradient(135deg, #2a0a1a, #5c1a38 40%, #2e0c22); }
}
#intro-scene { animation: intro-bg-pulse 4s ease-in-out infinite; }

/* ===========================
   SMOOTH PAGE TRANSITION
   =========================== */
@keyframes page-reveal {
  from { opacity: 0; }
  to   { opacity: 1; }
}
#main-site.entering { animation: page-reveal 1s ease forwards; }

/* ===========================
   HERO GLOW RING
   =========================== */
@keyframes ring-expand {
  0%   { transform: scale(0.8); opacity: 0.6; }
  100% { transform: scale(2.5); opacity: 0; }
}

/* ===========================
   TWINKLE
   =========================== */
@keyframes twinkle {
  0%,100% { opacity: 0.2; transform: scale(0.8); }
  50%      { opacity: 1; transform: scale(1.2); }
}

/* ===========================
   CARD HOVER GLOW
   =========================== */
.reason-card:hover { animation: glow-pulse 2s ease-in-out infinite; }
.gallery-card:hover { animation: glow-pulse 2s ease-in-out infinite; }

/* ===========================
   CUSTOM CURSOR TRAIL
   =========================== */
.cursor-petal {
  position: fixed;
  pointer-events: none;
  z-index: 9999;
  font-size: 1rem;
  animation: cursor-fade 0.8s ease forwards;
}
@keyframes cursor-fade {
  0%   { opacity: 1; transform: scale(1) translateY(0); }
  100% { opacity: 0; transform: scale(0.5) translateY(-30px); }
}
