:root {
  --cream: #faf7f2;
  --charcoal: #2b2b2b;
  --terra: #b06a3d;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--charcoal); -webkit-font-smoothing: antialiased; }

.font-cormorant { font-family: 'Cormorant Garamond', Georgia, serif; }
.font-jost { font-family: 'Jost', system-ui, sans-serif; }

/* Badge on header icons */
.badge {
  position: absolute;
  top: -6px; right: -8px;
  background: var(--terra);
  color: var(--cream);
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  min-width: 16px; height: 16px;
  border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  padding: 0 4px;
  animation: pop 0.35s ease;
}
@keyframes pop { 0% { transform: scale(0); } 70% { transform: scale(1.3); } 100% { transform: scale(1); } }

.pulse { animation: pulse 0.5s ease; }
@keyframes pulse { 0%,100% { transform: scale(1); } 40% { transform: scale(1.25); } }

/* Link underline */
.link-underline::after {
  content: ""; position: absolute; left: 0; bottom: -4px;
  width: 0; height: 1px; background: var(--terra);
  transition: width 0.3s ease;
}
.link-underline:hover::after { width: 100%; }

/* Shimmer loading */
.shimmer {
  background: linear-gradient(100deg, #ece7df 30%, #f5f1e9 50%, #ece7df 70%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite linear;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Entrance animations */
.fade-up { opacity: 0; animation: fadeUp 0.9s ease forwards; }
.fade-up:nth-of-type(2) { animation-delay: 0.15s; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

.card-in { opacity: 0; animation: cardIn 0.7s ease forwards; }
@keyframes cardIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

.tag-swap { animation: tagSwap 0.8s ease; }
@keyframes tagSwap { from { opacity: 0; transform: translateY(12px); filter: blur(4px); } to { opacity: 1; transform: translateY(0); filter: blur(0); } }

.drawer-in { animation: drawerIn 0.4s cubic-bezier(0.16,1,0.3,1); }
@keyframes drawerIn { from { transform: translateX(100%); } to { transform: translateX(0); } }

.modal-in { animation: modalIn 0.4s cubic-bezier(0.16,1,0.3,1); }
@keyframes modalIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }

.toast-in { animation: toastIn 0.3s ease; }
@keyframes toastIn { from { opacity: 0; transform: translate(-50%, 20px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--cream); }
::-webkit-scrollbar-thumb { background: #d3c9b8; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--terra); }

select { -webkit-appearance: none; appearance: none; cursor: pointer; }
img { display: block; }