/* Portfolio index — grid background, experience timeline, scroll animation, rec form, chat pulse */

/* Grid background (light) */
.bg-grid-light {
  background-color: #f5f3f0;
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 0, 0, 0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  min-height: 100vh;
}

/* Dark: solid black base + thin-line grid + top-center radial glow (spotlight) */
.dark .bg-grid-light {
  background-color: #000000;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(26, 26, 26, 0.95) 0%, rgba(10, 10, 10, 0.6) 35%, transparent 70%);
  background-size: 48px 48px, 48px 48px, 100% 100%;
  background-position: 0 0, 0 0, 0 0;
  background-attachment: fixed;
  min-height: 100vh;
}

.experience-list {
  padding-left: 0;
}

/* Scroll-in animation */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.animate-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Recommendation form — hidden until .open */
.rec-form {
  display: none;
}
.rec-form.open {
  display: flex;
}

/* Chat widget pulse */
.chat-pulse {
  animation: chat-pulse 0.5s ease;
}
@keyframes chat-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

/* Beyond the Screen — seamless infinite horizontal scroll */
@keyframes scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.beyond-track {
  animation: scroll 20s linear infinite;
}
.beyond-track:hover {
  animation-play-state: paused;
}

/* Chat panel — direct client chat layout */
.chatbot-header {
  min-height: 72px;
}

.chatbot-avatar-wrap {
  position: relative;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}

.chatbot-avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.chatbot-online-dot {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background: #10b981;
  border: 2px solid #000;
}

.chatbot-bubble {
  font-family: Inter, sans-serif;
}

.chatbot-bubble-assistant {
  background: #090909;
  color: #fff;
  border: 1px solid #3f3f46;
}

.chatbot-bubble-user {
  background: #fff;
  color: #000;
}

.chatbot-form {
  min-height: 64px;
}

.chatbot-input {
  min-height: 42px;
  max-height: 120px;
  box-shadow: 0 0 0 1px #60a5fa;
}

.chatbot-input:focus {
  box-shadow: 0 0 0 2px #93c5fd;
}

.chatbot-input::placeholder {
  color: #9ca3af;
}
