/* Base resets */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

/* Prose image + code tweaks */
.prose img { border-radius: 0.75rem; }
.prose pre { border: 1px solid rgba(113,113,122,0.2); }
.prose blockquote { border-left-color: #6366f1; }
.prose a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.prose a:hover { text-decoration-thickness: 2px; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(113,113,122,0.3); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(113,113,122,0.5); }

/* Selection */
::selection { background: rgba(99,102,241,0.2); }

/* Entrance animation — CSS only, no JS dependency */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-up {
  animation: fadeUp 0.6s ease-out both;
}
.animate-fade-up-delay-1 { animation-delay: 0.08s; }
.animate-fade-up-delay-2 { animation-delay: 0.16s; }
.animate-fade-up-delay-3 { animation-delay: 0.24s; }

@media (prefers-reduced-motion: reduce) {
  .animate-fade-up { animation: none; opacity: 1; }
}
