* { box-sizing: border-box; }
body { margin: 0; background: #faf6ee; }

.gold-text {
  background: linear-gradient(90deg, #b8901c, #e0be4a, #c9a227, #f0d878);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.fade-up {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeUp 0.6s ease forwards;
}
@keyframes fadeUp {
  to { opacity: 1; transform: translateY(0); }
}

.sparkle { position: relative; }
.sparkle::after {
  content: '✨';
  position: absolute;
  top: -6px; left: -14px;
  font-size: 0.6em;
  animation: twinkle 2s ease-in-out infinite;
}
@keyframes twinkle {
  0%, 100% { opacity: 0.3; transform: scale(0.8) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.2) rotate(15deg); }
}

.shimmer {
  background: linear-gradient(115deg, transparent 30%, rgba(240,226,184,0.15) 50%, transparent 70%);
  background-size: 200% 100%;
  animation: shimmer 3s linear infinite;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f2ede2; }
::-webkit-scrollbar-thumb { background: #c9a227; border-radius: 4px; }

button { cursor: pointer; }
img { user-select: none; }