/* ─── Google Fonts ────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500&family=Libre+Baskerville:ital,wght@0,400;1,400&family=Inter:wght@300;400;500;600&display=swap');

/* ─── Base ────────────────────────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 0;
  padding: 0;
  background-color: #fdfbf7;
  color: #111;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  overflow-x: hidden;
}

::selection {
  background: #333;
  color: #fff;
}

/* ─── Shared Keyframes ────────────────────────────────────────────────────── */
@keyframes cinematicFadeUp {
  0%   { opacity: 0; filter: blur(15px); transform: translateY(40px) scale(0.98); }
  100% { opacity: 1; filter: blur(0px);  transform: translateY(0)    scale(1);    }
}

@keyframes slideInLeft {
  0%   { opacity: 0; transform: translateX(-40px); }
  100% { opacity: 1; transform: translateX(0);     }
}

@keyframes slideInRight {
  0%   { opacity: 0; transform: translateX(40px); }
  100% { opacity: 1; transform: translateX(0);    }
}

@keyframes cardEntrance {
  0%   { opacity: 0; filter: blur(10px); transform: translateY(40px); }
  100% { opacity: 1; filter: blur(0px);  transform: translateY(0);    }
}

@keyframes sectionFloatUp {
  0%   { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0);    }
}

@keyframes cinematicUp {
  0%   { opacity: 0; filter: blur(10px); transform: translateY(30px); }
  100% { opacity: 1; filter: blur(0px);  transform: translateY(0);    }
}

@keyframes separatorFadeAndDraw {
  0%   { opacity: 0; filter: blur(6px); transform: translateY(40px) scaleX(0); }
  100% { opacity: 1; filter: blur(0px); transform: translateY(0)     scaleX(1); }
}
