/* ============================================================
   BASE — reset, body, typographie globale
============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--gray-50);
  color: var(--gray-900);
  line-height: 1.6;
  min-height: 100vh;
}

/* Animations partagées */
@keyframes fadeSlide {
  from { opacity: 0; transform: translateX(18px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .5; transform: scale(.7); }
}

@keyframes float-bounce {
  from { transform: translateX(-50%) translateY(60px); opacity: 0; }
  to   { transform: translateX(-50%) translateY(0); opacity: 1; }
}
