Spaces:
Running
Running
| *, *::before, *::after { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| :root { | |
| --sz: 15px; | |
| --c0: #000; | |
| --c1: #333; | |
| --primary: #10a37f; | |
| --secondary: #1a7f64; | |
| --dark: #202123; | |
| --light: #f7f7f8; | |
| --gray: #343541; | |
| --success: #10a37f; | |
| --accent: #e5e5e5; | |
| --border-radius: 12px; | |
| --border-radius-lg: 16px; | |
| --box-shadow: 0 0 15px rgba(0, 0, 0, 0.05); | |
| --transition: all 0.2s ease; | |
| --font-main: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; | |
| --bg-gradient: linear-gradient(180deg, #f0f4f9 0%, #ffffff 100%); | |
| --message-user: #10a37f; | |
| --message-ai: #7f56d9; | |
| --message-ai_2: #6731db; | |
| --message-ai_3: #5b1ae8; | |
| --message-error: #ef4444; | |
| } | |
| html, body { | |
| width: 100%; | |
| height: 100vh; | |
| overflow: hidden; | |
| } | |
| html { | |
| margin: 0; | |
| padding: 0; | |
| min-height: 100vh; | |
| width: 100vw; | |
| background: var(--gray); | |
| position: relative; | |
| overflow-x: hidden; | |
| color: var(--light); | |
| } | |
| html::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(circle at 20% 30%, rgba(16, 163, 127, 0.05), transparent 40%), | |
| radial-gradient(circle at 80% 70%, rgba(127, 86, 217, 0.05), transparent 40%); | |
| z-index: -1; | |
| } | |
| body { | |
| margin: 0; | |
| padding: 0; | |
| min-height: 100vh; | |
| background-color: transparent; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| height: 100vh; | |
| width: 100vw; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| overflow-x: hidden; | |
| font-family: var(--font-main); | |
| } | |
| #root { | |
| width: 100%; | |
| height: 100%; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| position: relative; | |
| } | |
| .chat-container { | |
| font-family: var(--font-main); | |
| width: 100%; | |
| max-width: 1000px; | |
| height: 100vh; | |
| margin: 0 auto; | |
| background: transparent; | |
| overflow: hidden; | |
| display: flex; | |
| flex-direction: column; | |
| justify-content: center; | |
| position: relative; | |
| z-index: 1; | |
| padding-bottom: 100px; | |
| } | |
| /* Header style for the container */ | |
| .chat-container::before { | |
| content: 'Which model should I use?'; | |
| display: block; | |
| padding: 18px; | |
| text-align: center; | |
| color: var(--light); | |
| font-size: 16px; | |
| font-weight: 600; | |
| background: transparent; | |
| position: relative; | |
| letter-spacing: 0.3px; | |
| } | |
| .chat-container::after { | |
| display: none; | |
| } | |
| .message { | |
| width: auto; | |
| max-width: 90%; | |
| margin: 0; | |
| padding: 16px 20px; | |
| border-radius: var(--border-radius); | |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); | |
| transition: var(--transition); | |
| position: relative; | |
| overflow: hidden; | |
| font-size: 15px; | |
| line-height: 1.5; | |
| } | |
| .message p { | |
| margin: 0 0 8px 0; | |
| } | |
| .message p:last-child { | |
| margin-bottom: 0; | |
| } | |
| /* Add a messages container for scrolling */ | |
| .messages-container { | |
| flex: 1; | |
| overflow-y: auto; | |
| padding: 20px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 20px; | |
| scroll-behavior: smooth; | |
| height: calc(100% - 280px); | |
| min-height: 200px; | |
| background: transparent; | |
| } | |
| .messages-container::-webkit-scrollbar { | |
| width: 6px; | |
| } | |
| .messages-container::-webkit-scrollbar-track { | |
| background: rgba(255, 255, 255, 0.05); | |
| border-radius: 8px; | |
| } | |
| .messages-container::-webkit-scrollbar-thumb { | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 8px; | |
| } | |
| .messages-container::-webkit-scrollbar-thumb:hover { | |
| background: rgba(255, 255, 255, 0.15); | |
| } | |
| .user-message { | |
| background: var(--dark); | |
| margin-left: auto; | |
| border-bottom-right-radius: 4px; | |
| color: var(--light); | |
| padding-left: 16px; | |
| border-left: 3px solid var(--message-user); | |
| } | |
| .feedback-message { | |
| background: var(--dark); | |
| margin-right: auto; | |
| border-bottom-left-radius: 4px; | |
| color: var(--light); | |
| max-width: 90%; | |
| padding-left: 16px; | |
| } | |
| /* Enhanced success animation */ | |
| @keyframes success-pulse { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.03); } | |
| 100% { transform: scale(1); } | |
| } | |
| @keyframes success-glow { | |
| 0% { box-shadow: 0 0 0 0 rgba(16, 163, 127, 0.6); } | |
| 50% { box-shadow: 0 0 20px rgba(16, 163, 127, 0.4); } | |
| 100% { box-shadow: 0 0 0 0 rgba(16, 163, 127, 0); } | |
| } | |
| .feedback-message.success { | |
| border-left: 3px solid var(--message-user); | |
| animation: success-pulse 0.7s ease-in-out, success-glow 1.5s ease-in-out infinite; | |
| } | |
| /* Enhanced error animation */ | |
| @keyframes shake { | |
| 0%, 100% { transform: translateX(0) rotate(0); } | |
| 15% { transform: translateX(-8px) rotate(-1deg); } | |
| 30% { transform: translateX(7px) rotate(0.8deg); } | |
| 45% { transform: translateX(-6px) rotate(-0.6deg); } | |
| 60% { transform: translateX(5px) rotate(0.4deg); } | |
| 75% { transform: translateX(-3px) rotate(-0.2deg); } | |
| 90% { transform: translateX(2px) rotate(0.1deg); } | |
| } | |
| @keyframes error-glow { | |
| 0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.6); } | |
| 50% { box-shadow: 0 0 20px rgba(239, 68, 68, 0.4); } | |
| 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); } | |
| } | |
| .feedback-message.error { | |
| border-left: 3px solid var(--message-error); | |
| animation: shake 0.7s ease-in-out, error-glow 1.5s ease-in-out infinite; | |
| } | |
| .error-explanation { | |
| font-size: 0.9em; | |
| opacity: 0.7; | |
| margin-top: 10px; | |
| font-style: italic; | |
| } | |
| .answer-reveal { | |
| margin-top: 15px; | |
| padding-top: 15px; | |
| border-top: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .reveal-button { | |
| margin-top: 15px; | |
| padding: 8px 16px; | |
| background: transparent; | |
| border: 1px solid var(--primary); | |
| color: var(--primary); | |
| border-radius: var(--border-radius); | |
| font-size: 14px; | |
| cursor: pointer; | |
| transition: var(--transition); | |
| } | |
| .reveal-button:hover { | |
| background: rgba(16, 163, 127, 0.1); | |
| } | |
| button { | |
| flex: 1; | |
| padding: 10px 16px; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: var(--border-radius); | |
| cursor: pointer; | |
| font-size: 14px; | |
| font-weight: 500; | |
| letter-spacing: 0.3px; | |
| transition: var(--transition); | |
| position: relative; | |
| overflow: hidden; | |
| background: var(--dark); | |
| color: var(--light); | |
| } | |
| button:hover { | |
| background: rgba(255, 255, 255, 0.05); | |
| } | |
| button:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| background: rgba(255, 255, 255, 0.05); | |
| } | |
| .active { | |
| background: var(--primary); | |
| color: white; | |
| border-color: var(--primary); | |
| } | |
| button:not(.active) { | |
| background: var(--dark); | |
| color: var(--light); | |
| } | |
| .not-matching { | |
| position: relative; | |
| } | |
| .not-matching::after { | |
| content: 'ERROR'; | |
| position: absolute; | |
| top: -10px; | |
| right: -10px; | |
| background: red; | |
| color: white; | |
| padding: 4px 8px; | |
| border-radius: 10px; | |
| font-size: 12px; | |
| font-weight: bold; | |
| } | |
| .modal-overlay { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background-color: rgba(0, 0, 0, 0.3); | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| z-index: 1000; | |
| backdrop-filter: blur(3px); | |
| animation: fadeIn 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| backdrop-filter: blur(0); | |
| } | |
| to { | |
| opacity: 1; | |
| backdrop-filter: blur(3px); | |
| } | |
| } | |
| .modal { | |
| background: var(--dark); | |
| border-radius: var(--border-radius-lg); | |
| padding: 30px; | |
| max-width: 700px; | |
| width: 90%; | |
| font-family: var(--font-main); | |
| color: var(--light); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| animation: slideUp 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| } | |
| @keyframes slideUp { | |
| from { | |
| transform: translateY(40px); | |
| opacity: 0; | |
| } | |
| to { | |
| transform: translateY(0); | |
| opacity: 1; | |
| } | |
| } | |
| .modal h2 { | |
| color: var(--light); | |
| margin-bottom: 24px; | |
| font-size: 24px; | |
| font-weight: 600; | |
| letter-spacing: 0.3px; | |
| opacity: 0.95; | |
| } | |
| .modal p { | |
| font-size: 16px; | |
| line-height: 1.6; | |
| margin-bottom: 32px; | |
| opacity: 0.9; | |
| font-weight: 400; | |
| } | |
| .modal button { | |
| background: var(--primary); | |
| color: white; | |
| border: none; | |
| padding: 12px 24px; | |
| border-radius: 8px; | |
| font-size: 15px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| width: auto; | |
| margin: 0 auto; | |
| display: inline-flex; | |
| } | |
| .modal button:hover { | |
| background: var(--secondary); | |
| transform: translateY(-1px); | |
| } | |
| /* ...existing styles... */ | |
| .answer-button { | |
| position: absolute; | |
| right: -75px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| background: var(--primary); | |
| color: white; | |
| border: none; | |
| height: 36px; | |
| padding: 0 16px; | |
| border-radius: 8px; | |
| font-size: 14px; | |
| min-width: auto; | |
| } | |
| .answer-button:hover { | |
| background: var(--secondary); | |
| } | |
| .chat-input { | |
| padding-right: 100px; | |
| } | |
| /* ...rest of existing styles... */ | |
| [data-transform-origin=bottom] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=bottom] .ds-fade-in-zoom-in-exit { | |
| transform-origin: bottom; | |
| } | |
| [data-transform-origin=bottom\ left] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=bottom\ left] .ds-fade-in-zoom-in-exit { | |
| transform-origin: 0 100%; | |
| } | |
| [data-transform-origin=bottom\ right] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=bottom\ right] .ds-fade-in-zoom-in-exit { | |
| transform-origin: 100% 100%; | |
| } | |
| [data-transform-origin=top] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=top] .ds-fade-in-zoom-in-exit { | |
| transform-origin: top; | |
| } | |
| [data-transform-origin=top\ left] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=top\ left] .ds-fade-in-zoom-in-exit { | |
| transform-origin: 0 0; | |
| } | |
| [data-transform-origin=top\ right] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=top\ right] .ds-fade-in-zoom-in-exit { | |
| transform-origin: 100% 0; | |
| } | |
| [data-transform-origin=left] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=left] .ds-fade-in-zoom-in-exit { | |
| transform-origin: 0; | |
| } | |
| [data-transform-origin=right] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=right] .ds-fade-in-zoom-in-exit { | |
| transform-origin: 100%; | |
| } | |
| [data-transform-origin=center] .ds-fade-in-zoom-in-enter, | |
| [data-transform-origin=center] .ds-fade-in-zoom-in-exit { | |
| transform-origin: 50%; | |
| } | |
| .ds-fade-in-zoom-in-enter { | |
| opacity: 0; | |
| transform: scale(.96); | |
| } | |
| .ds-fade-in-zoom-in-active { | |
| opacity: 1; | |
| transition: opacity var(--ds-ease-in) var(--ds-transition-duration-fast), | |
| transform var(--ds-ease-in) var(--ds-transition-duration-fast); | |
| transform: scale(1); | |
| } | |
| .ds-fade-in-zoom-in-exit { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| .ds-fade-in-zoom-in-exit-active { | |
| opacity: 0; | |
| transition: opacity var(--ds-ease-out) var(--ds-transition-duration-fast), | |
| transform var(--ds-ease-out) var (--ds-transition-duration-fast); | |
| transform: scale(.96); | |
| } | |
| .standard-button, .answer-button { | |
| flex: 1; | |
| max-width: 120px; | |
| height: 44px; | |
| padding: 0 18px; | |
| border-radius: var(--border-radius); | |
| font-size: 14px; | |
| font-weight: 500; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: var(--transition); | |
| } | |
| .standard-button { | |
| background: rgba(64, 65, 79, 0.9); | |
| color: var(--light); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .answer-button { | |
| background: var(--primary); | |
| color: white; | |
| border: none; | |
| } | |
| .standard-button.active { | |
| background: var(--primary); | |
| color: white; | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 1px rgba(16, 163, 127, 0.2); | |
| } | |
| .chat-input-container { | |
| position: relative; | |
| padding: 20px; | |
| background: transparent; | |
| width: 100%; | |
| display: flex; | |
| justify-content: center; | |
| } | |
| .chat-input-wrapper { | |
| position: relative; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| width: 100%; | |
| max-width: 600px; | |
| margin: 0 auto; | |
| } | |
| .button-group { | |
| display: flex; | |
| gap: 8px; | |
| margin-bottom: 4px; | |
| justify-content: center; | |
| } | |
| .input-with-button { | |
| position: relative; | |
| display: flex; | |
| width: 100%; | |
| } | |
| .chat-input { | |
| width: 100%; | |
| min-height: 50px; | |
| padding: 14px 16px; | |
| border-radius: var(--border-radius); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| background: rgba(64, 65, 79, 0.3); | |
| color: var(--light); | |
| font-size: 15px; | |
| line-height: 1.5; | |
| resize: none; | |
| outline: none; | |
| transition: var(--transition); | |
| font-family: var(--font-main); | |
| backdrop-filter: blur(8px); | |
| } | |
| .chat-input:focus { | |
| border-color: var(--primary); | |
| background: rgba(64, 65, 79, 0.4); | |
| box-shadow: 0 0 0 1px rgba(16, 163, 127, 0.2); | |
| } | |
| .chat-input::placeholder { | |
| color: rgba(255, 255, 255, 0.5); | |
| } | |
| .standard-button { | |
| background: transparent; | |
| color: var(--light); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| padding: 8px 16px; | |
| height: 36px; | |
| font-size: 13px; | |
| border-radius: 8px; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| flex: 0 0 auto; | |
| min-width: 90px; | |
| } | |
| .standard-button:hover { | |
| transform: translateY(-2px); | |
| background: rgba(255, 255, 255, 0.15); | |
| border-color: rgba(255, 255, 255, 0.4); | |
| } | |
| .standard-button.active { | |
| animation: none; | |
| } | |
| .thinking { | |
| display: flex; | |
| gap: 8px; | |
| padding: 16px 20px; | |
| background: var(--dark); | |
| border-radius: var(--border-radius); | |
| margin-right: auto; | |
| align-items: center; | |
| position: relative; | |
| border-left: 3px solid var(--message-ai); | |
| padding-left: 16px; | |
| overflow: hidden; | |
| } | |
| .dot { | |
| width: 10px; | |
| height: 10px; | |
| background: rgba(255, 255, 255, 0.8); | |
| border-radius: 50%; | |
| animation: bounce 1.4s infinite cubic-bezier(0.455, 0.03, 0.515, 0.955); | |
| } | |
| .dot:nth-child(1) { | |
| animation-delay: -0.32s; | |
| background: var(--message-ai); | |
| } | |
| .dot:nth-child(2) { | |
| animation-delay: -0.16s; | |
| background: var(--message-ai); | |
| } | |
| .dot:nth-child(3) { | |
| animation-delay: 0s; | |
| background: var(--message-ai); | |
| } | |
| @keyframes bounce { | |
| 0%, 80%, 100% { | |
| transform: scale(0) translateY(0); | |
| opacity: 0.3; | |
| } | |
| 40% { | |
| transform: scale(1.2) translateY(-10px); | |
| opacity: 1; | |
| } | |
| } | |
| /* ...rest of existing code... */ | |
| /* Tooltip styles */ | |
| .tooltip-wrapper { | |
| position: relative; | |
| display: inline-block; | |
| } | |
| .tooltip { | |
| position: absolute; | |
| bottom: calc(100% + 10px); | |
| left: 50%; | |
| transform: translateX(-50%) translateY(15px); | |
| background: var(--dark); | |
| color: var(--light); | |
| padding: 12px 16px; | |
| border-radius: 8px; | |
| font-size: 13px; | |
| width: 200px; | |
| text-align: center; | |
| opacity: 0; | |
| visibility: hidden; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| pointer-events: none; | |
| z-index: 100; | |
| line-height: 1.4; | |
| } | |
| .tooltip::after { | |
| content: ''; | |
| position: absolute; | |
| top: 100%; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| border: 6px solid transparent; | |
| border-top-color: var(--dark); | |
| } | |
| .tooltip-wrapper:hover .tooltip { | |
| transform: translateX(-50%) translateY(0); | |
| opacity: 1; | |
| visibility: visible; | |
| } | |
| /* Input typing animation */ | |
| @keyframes typing { | |
| 0% { width: 0; opacity: 0; } | |
| 100% { width: 100%; opacity: 1; } | |
| } | |
| /* Default state - no animation */ | |
| .chat-input { | |
| opacity: 1; | |
| width: 100%; | |
| animation: none; | |
| } | |
| /* Only animate when new-prompt class is applied */ | |
| .chat-input.new-prompt { | |
| animation: typing 0.8s ease-out forwards; | |
| } | |
| /* ...rest of existing styles... */ | |
| /* Update button styles for independent selection */ | |
| .standard-button.active { | |
| background: var(--primary); | |
| color: white; | |
| border-color: var(--primary); | |
| box-shadow: 0 0 0 1px rgba(16, 163, 127, 0.2); | |
| } | |
| /* Remove the pulse animation from active buttons */ | |
| .standard-button.active { | |
| animation: none; | |
| } | |
| /* Message appear animation */ | |
| @keyframes messageAppear { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(20px) scale(0.96); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| /* Apply message animation only to user messages */ | |
| .user-message.message-appear { | |
| animation: messageAppear 0.5s cubic-bezier(0.2, 0.6, 0.3, 1) forwards; | |
| } | |
| /* Remove message-appear animation from feedback messages that have their own animations */ | |
| .feedback-message.success.message-appear { | |
| animation: success-pulse 0.7s ease-in-out, success-glow 1.5s ease-in-out infinite; | |
| } | |
| .feedback-message.error.message-appear { | |
| animation: shake 0.7s ease-in-out, error-glow 1.5s ease-in-out infinite; | |
| } | |
| /* Add a basic appearance for thinking animation */ | |
| .thinking.message-appear { | |
| animation: messageAppear 0.5s cubic-bezier(0.2, 0.6, 0.3, 1) forwards; | |
| } | |
| /* ...rest of existing styles... */ | |
| /* Corner images */ | |
| .corner-image { | |
| position: fixed; | |
| z-index: 0; | |
| pointer-events: none; /* So they don't interfere with interactions */ | |
| opacity: 0.7; | |
| transition: opacity 0.3s ease; | |
| } | |
| .corner-image:hover { | |
| opacity: 1; | |
| } | |
| .corner-image-top-left { | |
| top: 20px; | |
| left: 20px; | |
| max-width: 120px; | |
| max-height: 120px; | |
| animation: floatAnimation 6s ease-in-out infinite; | |
| } | |
| .corner-image-bottom-right { | |
| bottom: 20px; | |
| right: 20px; | |
| max-width: 140px; | |
| max-height: 140px; | |
| animation: floatAnimation 8s ease-in-out infinite reverse; | |
| } | |
| @keyframes floatAnimation { | |
| 0% { | |
| transform: translateY(0) rotate(0deg); | |
| } | |
| 50% { | |
| transform: translateY(-15px) rotate(5deg); | |
| } | |
| 100% { | |
| transform: translateY(0) rotate(0deg); | |
| } | |
| } | |
| /* Make sure images don't interfere with mobile layout */ | |
| @media (max-width: 768px) { | |
| .corner-image { | |
| max-width: 80px; | |
| max-height: 80px; | |
| } | |
| .corner-image-top-left { | |
| top: 10px; | |
| left: 10px; | |
| } | |
| .corner-image-bottom-right { | |
| bottom: 10px; | |
| right: 10px; | |
| } | |
| } | |
| /* Company logo in corner */ | |
| .company-logo { | |
| position: fixed; | |
| bottom: 20px; | |
| max-width: 280px; /* Much larger size */ | |
| max-height: 140px; /* Much larger size */ | |
| z-index: 5; | |
| opacity: 0.9; | |
| transition: opacity 0.3s ease, transform 0.3s ease; | |
| } | |
| .company-logo:hover { | |
| opacity: 1; | |
| transform: scale(1.05); /* Slight grow effect on hover */ | |
| } | |
| /* Make sure logo doesn't interfere with mobile layout */ | |
| @media (max-width: 768px) { | |
| .company-logo { | |
| max-width: 180px; /* Larger but still reasonable for mobile */ | |
| max-height: 90px; | |
| bottom: 10px; | |
| } | |
| } | |
| /* ...rest of existing styles... */ | |
| /* Add specific styling for the input tooltip */ | |
| .input-tooltip-wrapper { | |
| width: 100%; | |
| display: block; | |
| } | |
| .input-tooltip { | |
| width: 250px; | |
| bottom: calc(100% + 15px); | |
| } | |
| /* Ensure tooltip appears over the textarea */ | |
| .input-with-button .tooltip-wrapper { | |
| position: relative; | |
| width: 100%; | |
| } | |
| /* ...existing styles... */ | |
| /* Energy Animation at the top */ | |
| .energy-animation { | |
| position: fixed; | |
| top: -100px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| background: var(--dark); | |
| border-radius: var(--border-radius-lg); | |
| padding: 15px 25px; | |
| display: flex; | |
| align-items: center; | |
| gap: 15px; | |
| box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); | |
| z-index: 1000; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| transition: top 0.6s cubic-bezier(0.2, 0.9, 0.3, 1.5); | |
| opacity: 0; | |
| } | |
| .energy-animation.show { | |
| top: 20px; | |
| opacity: 1; | |
| } | |
| .energy-icon { | |
| font-size: 28px; | |
| animation: pulse 2s infinite; | |
| } | |
| .energy-text { | |
| font-size: 16px; | |
| font-weight: 500; | |
| color: var(--light); | |
| max-width: 260px; | |
| } | |
| @keyframes pulse { | |
| 0% { | |
| transform: scale(1); | |
| opacity: 1; | |
| } | |
| 50% { | |
| transform: scale(1.2); | |
| opacity: 0.8; | |
| } | |
| 100% { | |
| transform: scale(1); | |
| opacity: 1; | |
| } | |
| } | |
| /* Responsive design for the animation */ | |
| @media (max-width: 768px) { | |
| .energy-animation { | |
| width: 90%; | |
| padding: 12px 18px; | |
| } | |
| .energy-text { | |
| font-size: 14px; | |
| } | |
| .energy-icon { | |
| font-size: 24px; | |
| } | |
| } | |
| /* ...existing styles... */ | |
| /* Message send animation */ | |
| @keyframes messageSend { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(30px) scale(0.9); | |
| } | |
| 70% { | |
| opacity: 1; | |
| transform: translateY(-5px) scale(1.02); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| .message-send-animation { | |
| animation: messageSend 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; | |
| } | |
| /* Stagger animations for multiple messages */ | |
| .messages-container > div:nth-child(2) { | |
| animation-delay: 0.15s; | |
| } | |
| .messages-container > div:nth-child(3) { | |
| animation-delay: 0.3s; | |
| } | |
| /* ...existing styles... */ | |
| /* Company logos in corners - both at the bottom */ | |
| .company-logo { | |
| position: fixed; | |
| bottom: 20px; | |
| max-width: 280px; | |
| max-height: 140px; | |
| z-index: 5; | |
| opacity: 0.9; | |
| transition: opacity 0.3s ease, transform 0.3s ease; | |
| } | |
| .company-logo:hover { | |
| opacity: 1; | |
| transform: scale(1.05); /* Slight grow effect on hover */ | |
| } | |
| .company-logo-right { | |
| right: 20px; | |
| } | |
| .company-logo-left { | |
| left: 20px; | |
| } | |
| /* Make sure logos don't interfere with mobile layout */ | |
| @media (max-width: 768px) { | |
| .company-logo { | |
| max-width: 180px; | |
| max-height: 90px; | |
| bottom: 10px; | |
| } | |
| .company-logo-right { | |
| right: 10px; | |
| } | |
| .company-logo-left { | |
| left: 10px; | |
| } | |
| } | |
| /* ...existing styles... */ | |
| /* Updated Welcome Modal Example Styles */ | |
| .modal-examples { | |
| margin-top: 25px; | |
| text-align: left; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| border-radius: var(--border-radius); | |
| padding: 20px; | |
| background-color: rgba(64, 65, 79, 0.3); | |
| color: var(--light); | |
| backdrop-filter: blur(8px); | |
| } | |
| .modal-examples h3 { | |
| margin-top: 0; | |
| margin-bottom: 20px; | |
| text-align: center; | |
| color: var(--light); | |
| font-size: 18px; | |
| font-weight: 500; | |
| } | |
| .button-example-container { | |
| display: flex; | |
| align-items: center; | |
| margin-bottom: 12px; | |
| } | |
| .button-example-container span { | |
| margin-left: 12px; | |
| font-size: 14px; | |
| color: rgba(255, 255, 255, 0.7); | |
| } | |
| .example-textarea { | |
| width: 100%; | |
| min-height: 40px; | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| border-radius: var(--border-radius); | |
| padding: 10px 12px; | |
| background-color: rgba(64, 65, 79, 0.3); | |
| font-size: 14px; | |
| color: var(--light); | |
| display: flex; | |
| align-items: center; | |
| } | |
| .modal-input-example, .modal-buttons-example, .modal-send-example { | |
| margin-bottom: 18px; | |
| } | |
| .button-example-container button.example, | |
| .modal-send-example button.example { | |
| pointer-events: none; | |
| transform: none; | |
| opacity: 1; | |
| } | |
| .button-example-container .standard-button.example { | |
| background: rgba(64, 65, 79, 0.9); | |
| color: var(--light); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| max-width: 90px; | |
| height: 36px; | |
| } | |
| .button-example-container .reasoning-button.example { | |
| background: transparent; | |
| } | |
| .button-example-container .search-button.example { | |
| background: transparent; | |
| } | |
| .modal-send-example .answer-button.example { | |
| background: var(--primary); | |
| color: white; | |
| position: static; | |
| transform: none; | |
| display: inline-flex; | |
| margin: 0; | |
| } | |
| .start-button { | |
| margin-top: 25px; | |
| background: var(--primary); | |
| color: white; | |
| padding: 12px 24px; | |
| font-size: 16px; | |
| } | |
| /* Make the modal match the app's style */ | |
| .modal { | |
| background: var(--dark); | |
| border-radius: var(--border-radius-lg); | |
| padding: 30px; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| /* ...existing code... */ | |