@charset "utf-8";

@keyframes envelope-away { 
  0% { transform: translateY(0px) rotate(0deg); opacity: 1; }
  15% { transform: translateY(10px) rotate(0.5deg); opacity: 1; }
  100% { transform: translateY(-120vh) rotate(-2deg); opacity: 0; }
}

@keyframes particle-burst { 
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0) rotate(0deg); }
  15% { opacity: 1; transform: translate(-50%,-50%)scale(1.3)rotate(var(--rot-start,15deg)); }
  100% { opacity: 0; transform: translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)))scale(.6)rotate(var(--rot-end,180deg)); }
}

@keyframes seal-pulse { 
  0%, 100% { transform: translate(-50%, -50%) scale(1); box-shadow: 0 4px 20px var(--shadow-color); }
  50% { transform: translate(-50%, -50%) scale(1.06); box-shadow: 0 6px 35px var(--shadow-color); }
}

@keyframes seal-break { 
  0% { transform: translate(-50%, -50%) scale(1) rotate(0deg); opacity: 1; filter: brightness(1); }
  30% { transform: translate(-50%, -50%) scale(1.15) rotate(5deg); opacity: 0.9; filter: brightness(1.3); }
  60% { transform: translate(-50%, -50%) scale(1.05) rotate(-3deg); opacity: 0.5; filter: brightness(1.5); }
  100% { transform: translate(-50%, -50%) scale(0) rotate(15deg); opacity: 0; filter: brightness(2); }
}

@keyframes seal-ring { 
  0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.8; }
  100% { transform: translate(-50%, -50%) scale(2.5); opacity: 0; }
}

@keyframes seal-flower-bloom { 
  0% { transform: scale(1) rotate(0deg); filter: brightness(1); }
  45% { transform: scale(1.16) rotate(-3deg); filter: brightness(1.08); }
  100% { transform: scale(1.06) rotate(0deg); filter: brightness(1.02); }
}

@keyframes shine { 
  0% { left: -100%; }
  50%, 100% { left: 100%; }
}

@keyframes dragon-fly-forward { 
  0% { transform: scale(var(--fly-scale-x,1),1); filter: blur(0px); opacity: 0.7; }
  40% { transform: scale(calc(var(--fly-scale-x,1)*1.6),1.6); filter: blur(2px); opacity: 0.5; }
  100% { transform: scale(calc(var(--fly-scale-x,1)*3),3); filter: blur(10px); opacity: 0; }
}

@keyframes ambient-fall { 
  0% { transform: translateY(-8vh) translateX(0px) rotate(0deg); opacity: 0; }
  10% { opacity: 0.5; }
  50% { transform: translatey(48vh)translatex(var(--sway,20px))rotate(180deg); opacity: 0.6; }
  92% { opacity: 0.45; }
  100% { transform: translateY(105vh) translateX(0px) rotate(360deg); opacity: 0; }
}

@keyframes ambient-rise { 
  0% { transform: translateY(6vh) translateX(0px) rotate(0deg); opacity: 0; }
  12% { opacity: 0.45; }
  55% { transform: translatey(-42vh)translatex(var(--sway,20px))rotate(8deg); opacity: 0.55; }
  92% { opacity: 0.35; }
  100% { transform: translateY(-92vh) translateX(0px) rotate(0deg); opacity: 0; }
}