:root {
  --pg-green: #0d3b34;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  color: #1c1917;
  -webkit-font-smoothing: antialiased;
}
.font-display { font-family: 'Fraunces', Georgia, serif; }

/* Line clamp utility */
.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Smooth scrolling */
html { scroll-behavior: smooth; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #f5f5f4; }
::-webkit-scrollbar-thumb { background: #0d3b34; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #12544a; }

/* Number input cleanup */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { opacity: 0.5; }

/* Card fade-in on load */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.grid > div, .grid > button { animation: fadeUp 0.4s ease both; }
.grid > *:nth-child(2) { animation-delay: 0.04s; }
.grid > *:nth-child(3) { animation-delay: 0.08s; }
.grid > *:nth-child(4) { animation-delay: 0.12s; }
.grid > *:nth-child(5) { animation-delay: 0.16s; }
.grid > *:nth-child(6) { animation-delay: 0.2s; }

/* Focus visibility for accessibility */
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #f59e0b;
  outline-offset: 1px;
}