/* CodeVerse custom styles: scrollbars, glass, gradients, animations */

:root { color-scheme: light dark; }

::selection { background: rgba(53, 99, 255, 0.3); }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(120, 130, 160, 0.4); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: rgba(120, 130, 160, 0.65); }

html { scroll-behavior: smooth; }

/* Glassmorphism helpers */
.glass {
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.4);
}
.dark .glass {
  background: rgba(17, 24, 48, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.glass-strong {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
}
.dark .glass-strong {
  background: rgba(13, 18, 38, 0.85);
}

/* Animated gradient text */
.gradient-text {
  background: linear-gradient(90deg, #598aff, #a855f7, #ec4899, #598aff);
  background-size: 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: gradient-move 8s linear infinite;
}
@keyframes gradient-move { to { background-position: 300% 0; } }

/* Aurora blobs for hero */
.aurora {
  position: absolute;
  border-radius: 9999px;
  filter: blur(80px);
  opacity: 0.5;
  pointer-events: none;
}

/* Card hover lift */
.card-hover { transition: transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s; }
.card-hover:hover { transform: translateY(-6px); box-shadow: 0 20px 40px -12px rgba(31, 67, 245, 0.35); }

/* Skeleton shimmer */
.skeleton {
  position: relative;
  overflow: hidden;
  background: rgba(148, 163, 184, 0.18);
}
.skeleton::after {
  content: '';
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer { 100% { transform: translateX(100%); } }

/* View transition-ish fade for route changes */
.route-enter { animation: fade-in .45s ease both; }
@keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Prose (notes) tweaks */
.prose-notes h1, .prose-notes h2, .prose-notes h3 { font-weight: 700; margin: .8em 0 .4em; }
.prose-notes h2 { font-size: 1.25rem; }
.prose-notes p { margin: .5em 0; line-height: 1.7; }
.prose-notes ul { list-style: disc; padding-left: 1.4em; margin: .5em 0; }
.prose-notes ol { list-style: decimal; padding-left: 1.4em; margin: .5em 0; }
.prose-notes li { margin: .25em 0; }
.prose-notes code {
  background: rgba(120,130,160,.18); padding: .15em .4em; border-radius: .35em;
  font-family: 'JetBrains Mono', monospace; font-size: .875em;
}
.prose-notes pre {
  background: #0d1226; color: #e2e8f0; padding: 1em; border-radius: .6em;
  overflow-x: auto; margin: .8em 0;
}
.prose-notes pre code { background: none; padding: 0; }
.prose-notes strong { color: inherit; font-weight: 700; }
.prose-notes a { color: #598aff; text-decoration: underline; }
.prose-notes blockquote { border-left: 3px solid #598aff; padding-left: 1em; opacity: .85; margin: .8em 0; }

/* Toast */
.toast {
  animation: scale-in .25s ease both;
}
@keyframes scale-in { from { opacity: 0; transform: scale(.95) translateY(6px); } to { opacity: 1; transform: none; } }

/* Sidebar active */
.nav-active {
  background: linear-gradient(90deg, rgba(53,99,255,.15), transparent);
  border-left: 3px solid #3563ff;
}

/* Hide scrollbar utility */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Monaco container fill */
.monaco-wrap { height: 100%; width: 100%; }
