/* ============================================================================
 *  ANIMATIONS  ·  Keyframes (alle GPU-freundlich: transform / opacity)
 * ========================================================================== */

@keyframes fadeUp     { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeIn     { from { opacity:0; } to { opacity:1; } }
@keyframes scaleIn    { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
@keyframes sheetUp    { from { transform:translateY(100%); } to { transform:translateY(0); } }
@keyframes float      { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
@keyframes spin       { to { transform:rotate(360deg); } }
@keyframes pulseGlow  { 0%,100% { box-shadow:0 0 0 0 var(--accent-soft); } 50% { box-shadow:0 0 36px 6px var(--accent-soft); } }
@keyframes shimmer    { 0% { background-position:-160% 0; } 100% { background-position:260% 0; } }
@keyframes stepIn     { from { opacity:0; transform:translateX(-8px); } to { opacity:1; transform:translateX(0); } }
@keyframes starDrift     { from { transform: translate3d(0,0,0); } to { transform: translate3d(-24px,-34px,0); } }
@keyframes starDriftFar  { from { transform: translate3d(0,0,0); } to { transform: translate3d(22px,28px,0); } }
@keyframes starTwinkle    { 0%,100% { opacity:.42; } 50% { opacity:.72; } }
@keyframes starTwinkleFar { 0%,100% { opacity:.20; } 50% { opacity:.42; } }
@keyframes glintPulse  { 0%,100% { opacity:.25; transform:scale(.7); } 50% { opacity:1; transform:scale(1.25); } }
@keyframes glintFloat  { 0%,100% { translate:0 0; } 50% { translate:0 -12px; } }
@keyframes auroraDrift { 0%,100% { transform:translateX(-50%) translate(-5%,-3%) scale(1); opacity:.55; } 50% { transform:translateX(-50%) translate(5%,3%) scale(1.12); opacity:.85; } }
@keyframes glowPulse  { 0%,100% { filter:drop-shadow(0 8px 22px var(--glow)); } 50% { filter:drop-shadow(0 12px 36px var(--accent-soft)); } }
@keyframes confettiFall {
  0%   { transform:translateY(-12px) rotate(0deg); opacity:.9; }
  100% { transform:translateY(115vh) rotate(720deg); opacity:0; }
}

/* Entrance-Helfer (gestaffelt per inline --d) */
.anim-up   { animation: fadeUp var(--dur-slow) var(--ease-out) both; }
.anim-in   { animation: fadeIn var(--dur) var(--ease) both; }
.anim-pop  { animation: scaleIn var(--dur) var(--ease-spring) both; }
.stagger > * { animation: fadeUp .5s var(--ease-out) both; }
.stagger > *:nth-child(1){ animation-delay:.04s; }
.stagger > *:nth-child(2){ animation-delay:.10s; }
.stagger > *:nth-child(3){ animation-delay:.16s; }
.stagger > *:nth-child(4){ animation-delay:.22s; }
.stagger > *:nth-child(5){ animation-delay:.28s; }
.stagger > *:nth-child(6){ animation-delay:.34s; }
.stagger > *:nth-child(7){ animation-delay:.40s; }
.stagger > *:nth-child(8){ animation-delay:.46s; }
