/* ============================================
   TotallyStraight.com — Custom Component CSS
   ============================================ */

/* --- Buttons --- */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.625rem 1.5rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #F8F9FA;
  background: linear-gradient(135deg, #E63946 0%, #c62833 100%);
  border: 1px solid rgba(230, 57, 70, 0.4);
  border-radius: 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
}
.btn-primary:hover {
  background: linear-gradient(135deg, #ff4757 0%, #E63946 100%);
  box-shadow: 0 0 20px rgba(230, 57, 70, 0.3);
  transform: translateY(-1px);
}
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.625rem 1.5rem;
  font-family: 'Barlow Condensed', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #A0A0B8;
  background: transparent;
  border: 1px solid #3A3A48;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
}
.btn-secondary:hover {
  color: #F8F9FA;
  border-color: #E63946;
  background: rgba(230, 57, 70, 0.08);
}

/* --- Live Dot Pulse --- */
.live-dot {
  width: 8px; height: 8px;
  background: #E63946;
  border-radius: 50%;
  display: inline-block;
  animation: livePulse 2s ease-in-out infinite;
}
@keyframes livePulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(230,57,70,0.5); }
  50% { opacity: 0.7; box-shadow: 0 0 0 6px rgba(230,57,70,0); }
}

/* --- Cards --- */
.card {
  background: #16161E;
  border: 1px solid #2A2A35;
  border-radius: 0.75rem;
  transition: border-color 0.2s ease;
}
.card:hover { border-color: #3A3A48; }

/* --- Thread Content Typography --- */
.thread-content p { color: #A0A0B8; line-height: 1.75; margin-bottom: 1rem; }
.thread-content h2 { color: #F8F9FA; font-family: 'Barlow Condensed', sans-serif; font-size: 1.35rem; font-weight: 700; margin: 1.75rem 0 0.75rem; }
.thread-content h3 { color: #F8F9FA; font-family: 'Barlow Condensed', sans-serif; font-size: 1.15rem; font-weight: 600; margin: 1.5rem 0 0.5rem; }
.thread-content a { color: #E63946; text-decoration: underline; text-underline-offset: 2px; transition: color 0.15s; }
.thread-content a:hover { color: #ff4757; }
.thread-content blockquote { border-left: 3px solid #E63946; padding: 0.75rem 1rem; margin: 1rem 0; background: rgba(230,57,70,0.05); border-radius: 0 0.5rem 0.5rem 0; color: #A0A0B8; font-style: italic; }
.thread-content ul, .thread-content ol { color: #A0A0B8; padding-left: 1.5rem; margin-bottom: 1rem; }
.thread-content li { margin-bottom: 0.35rem; line-height: 1.65; }
.thread-content code { font-family: 'JetBrains Mono', monospace; font-size: 0.85em; background: #1E1E2A; padding: 0.15em 0.4em; border-radius: 0.25rem; color: #F4A261; }
.thread-content hr { border: none; border-top: 1px solid #2A2A35; margin: 1.5rem 0; }
.thread-content strong { color: #F8F9FA; font-weight: 600; }

/* --- Article Body (About/Legal pages) --- */
.article-body p { color: #A0A0B8; line-height: 1.75; margin-bottom: 1rem; }
.article-body h2 { color: #F8F9FA; font-family: 'Barlow Condensed', sans-serif; font-size: 1.5rem; font-weight: 700; margin: 2rem 0 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid #2A2A35; }
.article-body h3 { color: #F8F9FA; font-family: 'Barlow Condensed', sans-serif; font-size: 1.2rem; font-weight: 600; margin: 1.5rem 0 0.5rem; }
.article-body a { color: #E63946; text-decoration: underline; }
.article-body ul { color: #A0A0B8; padding-left: 1.5rem; margin-bottom: 1rem; }
.article-body li { margin-bottom: 0.35rem; }

/* --- Cam Card --- */
.cam-card {
  background: #16161E;
  border: 1px solid #2A2A35;
  border-radius: 0.5rem;
  overflow: hidden;
  transition: all 0.25s ease;
  cursor: pointer;
}
.cam-card:hover {
  border-color: #E63946;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}
.cam-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }

/* --- Skeleton Loading --- */
.skeleton {
  background: linear-gradient(90deg, #16161E 25%, #1E1E2A 50%, #16161E 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: 0.5rem;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

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

/* --- Scrollbar --- */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0A0A0F; }
::-webkit-scrollbar-thumb { background: #2A2A35; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #3A3A48; }

/* --- Flair Badges --- */
.flair { display: inline-block; padding: 0.15rem 0.5rem; font-family: 'Barlow Condensed', sans-serif; font-weight: 600; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.05; border-radius: 0.25rem; }
.flair-story { background: rgba(230,57,70,0.15); color: #E63946; border: 1px solid rgba(230,57,70,0.3); }
.flair-guide { background: rgba(59,130,246,0.15); color: #60a5fa; border: 1px solid rgba(59,130,246,0.3); }
.flair-discussion { background: rgba(168,85,247,0.15); color: #c084fc; border: 1px solid rgba(168,85,247,0.3); }
.flair-advice { background: rgba(34,197,94,0.15); color: #4ade80; border: 1px solid rgba(34,197,94,0.3); }
.flair-challenge { background: rgba(244,162,97,0.15); color: #F4A261; border: 1px solid rgba(244,162,97,0.3); }

/* --- Vote Arrows --- */
.vote-btn { display: flex; align-items: center; justify-content: center; width: 28px; height: 24px; color: #5A5A72; cursor: pointer; transition: color 0.15s; background: none; border: none; font-size: 0.8rem; }
.vote-btn:hover { color: #F4A261; }

/* --- Comment Thread Lines --- */
.comment-thread { border-left: 2px solid #2A2A35; margin-left: 1rem; padding-left: 1rem; }
.comment-thread:hover { border-left-color: #3A3A48; }

/* --- Text Gradient --- */
.text-gradient { background: linear-gradient(135deg, #E63946, #F4A261); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

/* --- Age Gate Backdrop --- */
.age-gate-backdrop { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
