/* Finosent - Design Tokens & Custom Styles */
/* Using Tailwind CSS for utilities, this file for custom properties and complex styles */

:root {
  /* Dark theme (default) */
  --bg-base: #09090b;
  --bg-elevated: #18181b;
  --bg-surface: #27272a;
  --bg-hover: rgba(139, 92, 246, 0.1);
  --text-primary: #fafafa;
  --text-secondary: #a1a1aa;
  --text-muted: #71717a;
  --border: rgba(255, 255, 255, 0.1);
  --accent: #8b5cf6;
  --accent-light: #a78bfa;
  --glow: rgba(139, 92, 246, 0.4);
}

[data-theme="light"] {
  --bg-base: #fafafa;
  --bg-elevated: #ffffff;
  --bg-surface: #f4f4f5;
  --bg-hover: rgba(124, 58, 237, 0.1);
  --text-primary: #09090b;
  --text-secondary: #52525b;
  --text-muted: #a1a1aa;
  --border: rgba(0, 0, 0, 0.1);
  --accent: #7c3aed;
  --glow: rgba(124, 58, 237, 0.2);
}

/* Base styles */
html { scroll-behavior: smooth; }
body {
  background: var(--bg-base);
  color: var(--text-primary);
  font-family: 'Inter', system-ui, sans-serif;
}

/* Word breaking for long text */
.break-anywhere {
  word-break: break-word;
  overflow-wrap: anywhere;
  hyphens: auto;
}

/* Gradient text */
.text-gradient {
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 50%, #c084fc 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Button glow effect */
.btn-glow {
  box-shadow: 0 0 20px var(--glow), 0 0 40px rgba(139, 92, 246, 0.2);
}
.btn-glow:hover {
  box-shadow: 0 0 30px var(--glow), 0 0 60px rgba(139, 92, 246, 0.3);
}

/* Card glass effect */
.glass {
  background: rgba(24, 24, 27, 0.8);
  backdrop-filter: blur(12px);
  border: 1px solid var(--border);
}
[data-theme="light"] .glass {
  background: rgba(255, 255, 255, 0.8);
}

/* Navbar blur */
.nav-blur {
  background: rgba(24, 24, 27, 0.9);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
[data-theme="light"] .nav-blur {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

/* Focus ring */
.focus-ring:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--bg-base), 0 0 0 4px var(--accent);
}

/* Spinner animation */
@keyframes spin { to { transform: rotate(360deg); } }
.animate-spin { animation: spin 1s linear infinite; }

/* Pulse animation */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}
.animate-pulse { animation: pulse 2s ease-in-out infinite; }

/* Fade in */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-in { animation: fadeIn 0.3s ease-out; }

/* Hero gradient background */
.hero-gradient {
  background: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(139, 92, 246, 0.15), transparent);
}

/* Scrollbar styling */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg-base); }
::-webkit-scrollbar-thumb { background: var(--bg-surface); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* Selection */
::selection {
  background: rgba(139, 92, 246, 0.3);
  color: var(--text-primary);
}

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