/* Custom styles */
html {
  scroll-behavior: smooth;
}

/* Fade in animation for sections */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

section {
  animation: fadeIn 0.6s ease-out;
}

/* Smooth hover transitions */
a, button {
  transition: all 0.2s ease-in-out;
}

/* Custom scrollbar */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
  background: #4f46e5;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #4338ca;
}

/* Code block styling */
.code-block {
  border-radius: 0.75rem;
  overflow: hidden;
  font-family: 'Fira Code', 'Menlo', monospace;
  font-size: 0.9rem;
  line-height: 1.5;
  margin-bottom: 1.5rem;
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(79, 70, 229, 0.2);
  transition: all 0.3s ease;
}

.code-block:hover {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  transform: translateY(-2px);
  border: 1px solid rgba(79, 70, 229, 0.4);
}

.code-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1.25rem;
  background: linear-gradient(90deg, #1E293B 0%, #2D3748 100%);
  color: #e2e8f0;
  border-bottom: 1px solid rgba(79, 70, 229, 0.2);
}

.code-tabs {
  display: flex;
  gap: 1rem;
}

.code-tab {
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  transition: all 0.2s ease;
  background-color: rgba(79, 70, 229, 0.1);
}

.code-tab.active {
  background: linear-gradient(90deg, #4F46E5 0%, #6366F1 100%);
  color: white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.code-content {
  background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
  color: #e2e8f0;
  padding: 1.25rem;
  overflow-x: auto;
}

.code-content pre {
  margin: 0;
}

/* Enhanced syntax highlighting */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: #8B9CB6;
}

.token.punctuation {
  color: #A0AEC0;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
  color: #F472B6;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: #2DD4BF;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
  color: #A78BFA;
}

.token.atrule,
.token.attr-value,
.token.keyword {
  color: #818CF8;
}

.token.function,
.token.class-name {
  color: #F59E0B;
}

.token.regex,
.token.important,
.token.variable {
  color: #EC4899;
}

.token.namespace {
  opacity: 0.7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol {
  color: #3b82f6;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin {
  color: #10b981;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
  color: #d1d5db;
}

.token.atrule,
.token.attr-value,
.token.keyword {
  color: #8b5cf6;
}

.token.function,
.token.class-name {
  color: #f59e0b;
}

.token.regex,
.token.important,
.token.variable {
  color: #ec4899;
}

/* Gradient backgrounds */
.bg-gradient-primary {
  background: linear-gradient(135deg, #4F46E5 0%, #6366F1 100%);
}

.bg-gradient-secondary {
  background: linear-gradient(135deg, #1E293B 0%, #334155 100%);
}

.bg-gradient-code {
  background: linear-gradient(135deg, #0F172A 0%, #1E293B 100%);
}

/* Code snippet with gradient fade */
.code-gradient {
  position: relative;
  overflow: hidden;
}

.code-gradient::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 100px;
  background: linear-gradient(to bottom, rgba(15, 23, 42, 0) 0%, rgba(15, 23, 42, 1) 100%);
  pointer-events: none;
}

/* Code background styling */
.code-bg-container {
  position: relative;
  overflow: hidden;
}

/* Vibrant code background patterns with enhanced visuals */
.code-bg-pattern-1 {
  background: radial-gradient(circle at 20% 30%, rgba(79, 70, 229, 0.05) 0%, rgba(45, 212, 191, 0.05) 50%, rgba(168, 85, 247, 0.05) 100%);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.code-bg-pattern-1::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='pattern' width='300' height='300' patternUnits='userSpaceOnUse'%3E%3Ctext x='0' y='15' font-family='monospace' font-size='12' fill='%234F46E5' opacity='0.2'%3Eimport { AuthavaClient } from '@authava/client'%3C/text%3E%3Ctext x='0' y='35' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3Econst authava = new AuthavaClient({%3C/text%3E%3Ctext x='0' y='55' font-family='monospace' font-size='12' fill='%23A855F7' opacity='0.2'%3E  domain: 'auth.yourdomain.com'%3C/text%3E%3Ctext x='0' y='75' font-family='monospace' font-size='12' fill='%234F46E5' opacity='0.2'%3E});%3C/text%3E%3Ctext x='0' y='95' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3Eawait authava.login({ email, password });%3C/text%3E%3Ctext x='0' y='115' font-family='monospace' font-size='12' fill='%23A855F7' opacity='0.2'%3Econst session = await authava.getSession();%3C/text%3E%3Ctext x='0' y='135' font-family='monospace' font-size='12' fill='%234F46E5' opacity='0.2'%3Eif (session) { console.log(session.user); }%3C/text%3E%3Ctext x='0' y='155' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3Eawait authava.logout();%3C/text%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23pattern)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  opacity: 1;
}

.code-bg-pattern-2 {
  background: radial-gradient(circle at 70% 20%, rgba(168, 85, 247, 0.05) 0%, rgba(79, 70, 229, 0.05) 50%, rgba(45, 212, 191, 0.05) 100%);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.code-bg-pattern-2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='pattern' width='300' height='300' patternUnits='userSpaceOnUse'%3E%3Ctext x='0' y='15' font-family='monospace' font-size='12' fill='%23A855F7' opacity='0.2'%3Efunction ProtectedRoute({ children }) {%3C/text%3E%3Ctext x='0' y='35' font-family='monospace' font-size='12' fill='%234F46E5' opacity='0.2'%3E  const { isLoading, session } = useAuthava();%3C/text%3E%3Ctext x='0' y='55' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3E  if (isLoading) return &lt;Loading /&gt;;%3C/text%3E%3Ctext x='0' y='75' font-family='monospace' font-size='12' fill='%23A855F7' opacity='0.2'%3E  if (!session) return &lt;Navigate to="/login" /&gt;;%3C/text%3E%3Ctext x='0' y='95' font-family='monospace' font-size='12' fill='%234F46E5' opacity='0.2'%3E  return children;%3C/text%3E%3Ctext x='0' y='115' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3E}%3C/text%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23pattern)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  opacity: 1;
}

.code-bg-pattern-3 {
  background: radial-gradient(circle at 40% 60%, rgba(45, 212, 191, 0.05) 0%, rgba(168, 85, 247, 0.05) 50%, rgba(79, 70, 229, 0.05) 100%);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.code-bg-pattern-3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='pattern' width='300' height='300' patternUnits='userSpaceOnUse'%3E%3Ctext x='0' y='15' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3Eresource "authava_domain" "main" {%3C/text%3E%3Ctext x='0' y='35' font-family='monospace' font-size='12' fill='%23A855F7' opacity='0.2'%3E  domain = "auth.${var.app_domain}"%3C/text%3E%3Ctext x='0' y='55' font-family='monospace' font-size='12' fill='%234F46E5' opacity='0.2'%3E  email_provider = "authava"%3C/text%3E%3Ctext x='0' y='75' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3E  from_email = "auth@${var.app_domain}"%3C/text%3E%3Ctext x='0' y='95' font-family='monospace' font-size='12' fill='%23A855F7' opacity='0.2'%3E  company_name = var.company_name%3C/text%3E%3Ctext x='0' y='115' font-family='monospace' font-size='12' fill='%234F46E5' opacity='0.2'%3E  primary_color = var.brand_color%3C/text%3E%3Ctext x='0' y='135' font-family='monospace' font-size='12' fill='%232DD4BF' opacity='0.2'%3E}%3C/text%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23pattern)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  opacity: 1;
}

/* Add floating code symbols with enhanced visuals */
.code-bg-pattern-1::after,
.code-bg-pattern-2::after,
.code-bg-pattern-3::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    url("data:image/svg+xml,%3Csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='symbols' width='800' height='800' patternUnits='userSpaceOnUse'%3E%3Ctext x='50' y='50' font-family='monospace' font-size='30' fill='%234F46E5' opacity='0.15'%3E{%3C/text%3E%3Ctext x='150' y='120' font-family='monospace' font-size='40' fill='%232DD4BF' opacity='0.15'%3E}%3C/text%3E%3Ctext x='250' y='200' font-family='monospace' font-size='35' fill='%23A855F7' opacity='0.15'%3E()%3C/text%3E%3Ctext x='100' y='300' font-family='monospace' font-size='45' fill='%234F46E5' opacity='0.15'%3E=>%3C/text%3E%3Ctext x='350' y='150' font-family='monospace' font-size='50' fill='%232DD4BF' opacity='0.15'%3E;%3C/text%3E%3Ctext x='400' y='350' font-family='monospace' font-size='60' fill='%23A855F7' opacity='0.15'%3E.%3C/text%3E%3Ctext x='200' y='400' font-family='monospace' font-size='55' fill='%234F46E5' opacity='0.15'%3E/%3C/text%3E%3Ctext x='500' y='250' font-family='monospace' font-size='40' fill='%232DD4BF' opacity='0.15'%3E[]%3C/text%3E%3Ctext x='600' y='450' font-family='monospace' font-size='50' fill='%23A855F7' opacity='0.15'%3E&&%3C/text%3E%3Ctext x='700' y='550' font-family='monospace' font-size='45' fill='%234F46E5' opacity='0.15'%3E||%3C/text%3E%3Ctext x='300' y='650' font-family='monospace' font-size='35' fill='%232DD4BF' opacity='0.15'%3E<>%3C/text%3E%3Ctext x='450' y='700' font-family='monospace' font-size='30' fill='%23A855F7' opacity='0.15'%3E::%3C/text%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23symbols)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  opacity: 0.7;
}

/* Add glowing particles */
.code-bg-pattern-1::before,
.code-bg-pattern-2::before,
.code-bg-pattern-3::before {
  box-shadow: inset 0 0 100px rgba(79, 70, 229, 0.1),
              inset 0 0 50px rgba(45, 212, 191, 0.1),
              inset 0 0 25px rgba(168, 85, 247, 0.1);
}

/* Add subtle grid pattern */
.code-bg-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
  background-size: 20px 20px;
  z-index: 0;
  pointer-events: none;
}

.code-bg-content {
  position: relative;
  z-index: 1;
}

/* Enhanced parallax effects for code backgrounds */
.parallax-bg {
  animation: parallaxBg 60s linear infinite;
}

.code-bg-pattern-1::after {
  animation: floatingSymbols 120s linear infinite;
}

.code-bg-pattern-2::after {
  animation: floatingSymbols 150s linear infinite reverse;
}

.code-bg-pattern-3::after {
  animation: floatingSymbols 180s linear infinite;
}

@keyframes parallaxBg {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 0 1000px;
  }
}

@keyframes floatingSymbols {
  0% {
    background-position: 0 0;
  }
  25% {
    background-position: 200px -300px;
  }
  50% {
    background-position: 500px -500px;
  }
  75% {
    background-position: 300px -200px;
  }
  100% {
    background-position: 0 0;
  }
}

/* Add subtle pulse animation to the backgrounds */
.code-bg-pattern-1,
.code-bg-pattern-2,
.code-bg-pattern-3 {
  animation: subtlePulse 15s ease-in-out infinite alternate;
}

@keyframes subtlePulse {
  0% {
    opacity: 0.8;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.8;
  }
}

/* Feature cards */
.feature-card {
  transition: all 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-5px);
}

/* Animated gradient text */
.gradient-text {
  background: linear-gradient(90deg, #4F46E5, #6366F1, #8B5CF6);
  background-size: 200% auto;
  color: transparent;
  background-clip: text;
  -webkit-background-clip: text;
  animation: gradient 3s ease infinite;
}

@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* Code tabs */
.code-tabs-container {
  display: flex;
  border-bottom: 1px solid #334155;
  margin-bottom: 1rem;
}

.code-tab-button {
  padding: 0.5rem 1rem;
  background: transparent;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  border-bottom: 2px solid transparent;
}

.code-tab-button.active {
  color: #4F46E5;
  border-bottom-color: #4F46E5;
}

.code-tab-content {
  display: none;
}

.code-tab-content.active {
  display: block;
}

/* Developer-focused elements */
.api-method {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  margin-right: 0.5rem;
}

.api-method.get {
  background-color: #10b981;
  color: white;
}

.api-method.post {
  background-color: #3b82f6;
  color: white;
}

.api-method.put {
  background-color: #f59e0b;
  color: white;
}

.api-method.delete {
  background-color: #ef4444;
  color: white;
}

/* Enterprise features */
.enterprise-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  background-color: #1e293b;
  color: white;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
}

.enterprise-badge svg {
  width: 0.75rem;
  height: 0.75rem;
  margin-right: 0.25rem;
}

/* Blog specific styles */
/* Prose styles for Markdown content */
.prose {
  max-width: 65ch;
  color: #374151;
}

.prose p {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
}

.prose a {
  color: #4F46E5;
  text-decoration: underline;
  font-weight: 500;
}

.prose strong {
  font-weight: 600;
  color: #111827;
}

.prose h1 {
  font-size: 2.25em;
  margin-top: 0;
  margin-bottom: 0.8888889em;
  line-height: 1.1111111;
  font-weight: 700;
  color: #111827;
}

.prose h2 {
  font-size: 1.5em;
  margin-top: 2em;
  margin-bottom: 1em;
  line-height: 1.3333333;
  font-weight: 700;
  color: #111827;
  border-bottom: 1px solid #E5E7EB;
  padding-bottom: 0.5em;
}

.prose h3 {
  font-size: 1.25em;
  margin-top: 1.6em;
  margin-bottom: 0.6em;
  line-height: 1.6;
  font-weight: 600;
  color: #111827;
}

.prose h4 {
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  line-height: 1.5;
  font-weight: 600;
  color: #111827;
}

.prose ul {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  list-style-type: disc;
  padding-left: 1.625em;
}

.prose ol {
  margin-top: 1.25em;
  margin-bottom: 1.25em;
  list-style-type: decimal;
  padding-left: 1.625em;
}

.prose li {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

.prose blockquote {
  font-weight: 500;
  font-style: italic;
  color: #111827;
  border-left-width: 0.25rem;
  border-left-color: #E5E7EB;
  margin-top: 1.6em;
  margin-bottom: 1.6em;
  padding-left: 1em;
}

.prose code {
  color: #4F46E5;
  font-weight: 500;
  font-size: 0.875em;
  background-color: #F3F4F6;
  padding: 0.2em 0.4em;
  border-radius: 0.25rem;
}

.prose pre {
  color: #E5E7EB;
  background-color: #1F2937;
  overflow-x: auto;
  font-size: 0.875em;
  line-height: 1.7142857;
  margin-top: 1.7142857em;
  margin-bottom: 1.7142857em;
  border-radius: 0.375rem;
  padding: 0.8571429em 1.1428571em;
}

.prose pre code {
  background-color: transparent;
  border-width: 0;
  border-radius: 0;
  padding: 0;
  font-weight: 400;
  color: inherit;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
}

.prose img {
  margin-top: 2em;
  margin-bottom: 2em;
  border-radius: 0.375rem;
  max-width: 100%;
}

.prose hr {
  margin-top: 3em;
  margin-bottom: 3em;
  border-color: #E5E7EB;
}

.prose table {
  width: 100%;
  table-layout: auto;
  text-align: left;
  margin-top: 2em;
  margin-bottom: 2em;
  font-size: 0.875em;
  line-height: 1.7142857;
  border-collapse: collapse;
}

.prose thead {
  color: #111827;
  font-weight: 600;
  border-bottom-width: 1px;
  border-bottom-color: #D1D5DB;
}

.prose thead th {
  vertical-align: bottom;
  padding-right: 0.5714286em;
  padding-bottom: 0.5714286em;
  padding-left: 0.5714286em;
}

.prose tbody tr {
  border-bottom-width: 1px;
  border-bottom-color: #E5E7EB;
}

.prose tbody tr:last-child {
  border-bottom-width: 0;
}

.prose tbody td {
  vertical-align: top;
  padding-top: 0.5714286em;
  padding-right: 0.5714286em;
  padding-bottom: 0.5714286em;
  padding-left: 0.5714286em;
}

/* 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;
}

/* Blog card styles */
.blog-card {
  transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.blog-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
