/* Français avec Romain — motion. Generous micro-interactions, framer-motion feel. */
:root {
  --transition-fast: all 0.2s ease-in-out;  /* @kind other */ /* global site transition */
  --transition-base: all 0.3s ease-in-out;  /* @kind other */ /* buttons, cards */
  --scale-hover: 1.05;   /* @kind other */ /* CTA hover */
  --scale-tap: 0.95;     /* @kind other */ /* CTA press */
  --scale-hover-round: 1.1; /* @kind other */ /* round carousel buttons */
  --duration-entrance: 0.8s; /* @kind other */ /* scroll fade+rise entrances (translateY 20–30px) */
  --stagger-step: 0.1s;      /* @kind other */ /* cascade delay per card */
}

/* Signature keyframes */
@keyframes fwr-bounce {
  0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); }
  50% { transform: none; animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
}
@keyframes fwr-floaty {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
@keyframes fwr-breathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes fwr-pulse-ring {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
  70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
  100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}
@keyframes fwr-rise-in {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
