/* ── Page Transition — prevents FOUC + smooth fade-in ─── */

/* Hide body instantly via CSS (no JS dependency) */
body {
  opacity: 0;
  transition: opacity 0.25s ease-in;
}

/* Show body when JS marks it ready */
body.cv-ready {
  opacity: 1;
}

/* Page exit overlay (smooth navigation between pages) */
#cv-page-overlay {
  position: fixed;
  inset: 0;
  background: #f9fafb;
  z-index: 99999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}

#cv-page-overlay.active {
  opacity: 1;
  pointer-events: all;
}

/* Loading spinner for slow pages */
#cv-page-overlay .cv-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 32px;
  height: 32px;
  border: 3px solid #e5e7eb;
  border-top-color: #024B3E;
  border-radius: 50%;
  animation: cv-spin 0.6s linear infinite;
}

@keyframes cv-spin {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Prevent layout shift for common elements */
img { max-width: 100%; height: auto; }
[data-lucide] { display: inline-block; width: 1em; height: 1em; }
