/* Keyframes + utility classes for motion */

@keyframes ribbon-draw {
  to { stroke-dashoffset: 0; }
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.06); }
}

@keyframes floatLeaf {
  0%, 100% { transform: translate(0, 0) rotate(var(--r, 0deg)); }
  50%      { transform: translate(6px, -10px) rotate(calc(var(--r, 0deg) + 8deg)); }
}

@keyframes driftLeaf {
  0%, 100% { transform: translate(0, 0) rotate(var(--rot, 0deg)); }
  50%      { transform: translate(var(--dx, 6px), var(--dy, -8px)) rotate(calc(var(--rot, 0deg) + 10deg)); }
}

@keyframes pageFade {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Route transition */
.page-enter { animation: pageFade var(--duration-slow) var(--ease-out); }

/* Petal menu hover/active states */
.petal-hit:hover  { transform: translate(-50%, -50%) scale(1.08) !important; }
.petal-hit:active { transform: translate(-50%, -50%) scale(0.96) !important; }

/* Ribbon brightness tween handled inline by scroll listener */
svg path.ribbon-path { transition: filter var(--duration-slow); }
