/* Grain texture overlay */
.grain-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 256px 256px;
}

/* Radial gradient utility */
.bg-gradient-radial {
  background: radial-gradient(ellipse at center, var(--tw-gradient-from) 0%, var(--tw-gradient-via, transparent) 50%, var(--tw-gradient-to, transparent) 100%);
}

/* Glass morphism */
.glass {
  background: rgba(17, 17, 17, 0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.06);
}

/* Gold glow */
.glow-gold {
  box-shadow: 0 0 30px rgba(201, 168, 76, 0.15), 0 0 60px rgba(201, 168, 76, 0.05);
}

/* Custom scrollbar */
.custom-scroll::-webkit-scrollbar {
  width: 4px;
}
.custom-scroll::-webkit-scrollbar-track {
  background: #111111;
}
.custom-scroll::-webkit-scrollbar-thumb {
  background: #333333;
  border-radius: 2px;
}
.custom-scroll::-webkit-scrollbar-thumb:hover {
  background: #C9A84C;
}

* {
  scrollbar-width: thin;
  scrollbar-color: #333333 #111111;
}

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

/* Smooth transitions */
*, *::before, *::after {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Focus ring */
:focus-visible {
  outline: 2px solid rgba(201, 168, 76, 0.5);
  outline-offset: 2px;
}

/* Selection color */
::selection {
  background: rgba(201, 168, 76, 0.2);
  color: #E8C96B;
}
