:root { --primary-color: #6e48aa; --secondary-color: #9d50bb; --accent-color: #4776E6; --text-color: #f8f9fa; --bg-dark: #121212; --bg-darker: #0a0a0a; --user-bubble: #6e48aa; --ai-bubble: #333344; --bubble-pointer: 12px; --transition-speed: 0.3s; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; } body { background: var(--bg-dark); color: var(--text-color); overflow-x: hidden; height: 100vh; position: relative; touch-action: manipulation; } #particles-js { position: fixed; width: 100%; height: 100%; z-index: -1; background: linear-gradient(135deg, var(--bg-darker) 0%, var(--bg-dark) 100%); } .floating-icons { position: fixed; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; z-index: -1; pointer-events: none; } .floating-icon { position: absolute; opacity: 0.1; animation: float linear infinite; } .chat-container { display: flex; flex-direction: column; height: 100vh; width: 100%; overflow: hidden; } .chat-header { padding: 15px 20px; background: rgba(20, 20, 20, 0.8); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; border-bottom: 1px solid rgba(255, 255, 255, 0.1); z-index: 10; } .chat-header .logo { display: flex; align-items: center; gap: 10px; } .chat-header .logo i { font-size: 24px; color: var(--secondary-color); animation: pulse 2s infinite; } .chat-header .logo h1 { font-size: 20px; font-weight: 700; background: linear-gradient(to right, var(--secondary-color), var(--accent-color)); -webkit-background-clip: text; background-clip: text; color: transparent; } .chat-messages { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 20px 15px 80px; display: flex; flex-direction: column; align-items: center; gap: 20px; } .message { max-width: 85%; min-width: 60%; padding: 15px 20px; border-radius: 20px; line-height: 1.5; position: relative; animation: fadeIn 0.4s ease-out; word-wrap: break-word; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } .user-message { background: var(--user-bubble); color: white; align-self: flex-end; margin-right: 30px; } .user-message::after { content: ''; position: absolute; right: -var(--bubble-pointer); top: 50%; transform: translateY(-50%); width: 0; height: 0; border-top: var(--bubble-pointer) solid transparent; border-bottom: var(--bubble-pointer) solid transparent; border-left: var(--bubble-pointer) solid var(--user-bubble); } .ai-message { background: var(--ai-bubble); align-self: flex-start; margin-left: 30px; } .ai-message::before { content: ''; position: absolute; left: -var(--bubble-pointer); top: 50%; transform: translateY(-50%); width: 0; height: 0; border-top: var(--bubble-pointer) solid transparent; border-bottom: var(--bubble-pointer) solid transparent; border-right: var(--bubble-pointer) solid var(--ai-bubble); } .message-content { font-size: 16px; } .message-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; font-size: 12px; opacity: 0.8; } .message-role { font-weight: 600; } .message-role i { margin-right: 5px; } .message-time { font-style: italic; } .scroll-to-bottom { position: fixed; bottom: 70px; left: 50%; transform: translateX(-50%); width: 50px; height: 50px; border-radius: 50%; background: rgba(110, 72, 170, 0.8); backdrop-filter: blur(5px); border: 1px solid rgba(255, 255, 255, 0.2); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all var(--transition-speed); opacity: 0; visibility: hidden; z-index: 20; } .scroll-to-bottom.visible { opacity: 1; visibility: visible; } .scroll-to-bottom:hover { background: rgba(110, 72, 170, 1); transform: translateX(-50%) scale(1.1); } .scroll-to-bottom i { font-size: 20px; color: white; } /* Animations */ @keyframes float { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-100vh) rotate(360deg); } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* Responsive adjustments */ @media (max-width: 480px) { .message { max-width: 90%; min-width: 70%; } .user-message { margin-right: 20px; } .ai-message { margin-left: 20px; } }