| .chat-area { |
| flex: 1; |
| overflow-y: auto; |
| overflow-x: hidden; |
| background: |
| radial-gradient(ellipse 60% 50% at 15% 20%, rgba(59,142,255,0.09) 0%, transparent 70%), |
| radial-gradient(ellipse 50% 60% at 85% 75%, rgba(155,109,255,0.08) 0%, transparent 65%), |
| radial-gradient(ellipse 45% 40% at 60% 10%, rgba(0,229,255,0.06) 0%, transparent 60%); |
| } |
|
|
| .chat-area__inner { |
| max-width: 760px; |
| margin: 0 auto; |
| padding: 32px 24px 16px; |
| display: flex; |
| flex-direction: column; |
| gap: 4px; |
| min-height: 100%; |
| } |
|
|
| .welcome { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| text-align: center; |
| padding: 48px 24px 40px; |
| animation: fadeInUp 0.55s cubic-bezier(0.4, 0, 0.2, 1); |
| flex: 1; |
| } |
|
|
| .welcome__icon { |
| position: relative; |
| margin-bottom: 32px; |
| animation: float 5s ease-in-out infinite; |
| } |
|
|
| .welcome__icon::before { |
| content: ''; |
| position: absolute; |
| inset: -20px; |
| background: radial-gradient(circle, rgba(59,142,255,0.2) 0%, rgba(0,229,255,0.1) 40%, transparent 70%); |
| border-radius: 50%; |
| animation: glowPulse 3s ease-in-out infinite; |
| } |
|
|
| .welcome__icon svg { |
| filter: drop-shadow(0 0 12px rgba(59,142,255,0.8)) drop-shadow(0 0 28px rgba(0,229,255,0.5)); |
| } |
|
|
| .welcome__title { |
| font-size: 44px; |
| font-weight: 700; |
| letter-spacing: -0.05em; |
| background: linear-gradient(135deg, #ffffff 10%, #a8d4ff 45%, #00E5FF 75%, #9B6DFF 100%); |
| -webkit-background-clip: text; |
| -webkit-text-fill-color: transparent; |
| background-clip: text; |
| margin-bottom: 12px; |
| line-height: 1; |
| animation: textGlow 5s ease-in-out infinite; |
| } |
|
|
| .welcome__tagline { |
| font-size: 13px; |
| font-weight: 500; |
| letter-spacing: 0.08em; |
| text-transform: uppercase; |
| color: var(--accent-cyan); |
| margin-bottom: 18px; |
| opacity: 0.85; |
| } |
|
|
| .welcome__desc { |
| font-size: 14.5px; |
| color: var(--text-secondary); |
| line-height: 1.75; |
| max-width: 460px; |
| margin-bottom: 40px; |
| } |
|
|
| .welcome__chips { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 9px; |
| justify-content: center; |
| max-width: 620px; |
| } |
|
|
| .welcome__chip { |
| padding: 10px 18px; |
| background: var(--bg-glass); |
| border: 1px solid var(--border-default); |
| border-radius: 100px; |
| color: var(--text-secondary); |
| font-family: var(--font-sans); |
| font-size: 13px; |
| font-weight: 400; |
| cursor: pointer; |
| transition: all var(--transition-base); |
| white-space: nowrap; |
| position: relative; |
| overflow: hidden; |
| } |
|
|
| .welcome__chip::before { |
| content: ''; |
| position: absolute; |
| inset: 0; |
| background: linear-gradient(135deg, rgba(59,142,255,0.1) 0%, rgba(0,229,255,0.05) 100%); |
| opacity: 0; |
| transition: opacity var(--transition-fast); |
| } |
|
|
| .welcome__chip:hover::before { opacity: 1; } |
| .welcome__chip:hover { |
| border-color: rgba(0,229,255,0.45); |
| color: var(--accent-cyan); |
| transform: translateY(-2px); |
| box-shadow: 0 6px 20px rgba(0,229,255,0.15), 0 0 0 1px rgba(0,229,255,0.12); |
| } |
|
|
| .typing-indicator { |
| display: flex; |
| align-items: flex-end; |
| gap: 12px; |
| padding: 10px 0; |
| animation: fadeIn 0.22s ease; |
| } |
|
|
| .typing-indicator__avatar { |
| width: 34px; |
| height: 34px; |
| background: linear-gradient(135deg, rgba(59,142,255,0.2), rgba(155,109,255,0.15)); |
| border: 1px solid rgba(59,142,255,0.3); |
| border-radius: 11px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 9px; |
| font-weight: 700; |
| color: var(--accent-cyan); |
| font-family: var(--font-mono); |
| flex-shrink: 0; |
| letter-spacing: 0.04em; |
| box-shadow: 0 0 14px rgba(59,142,255,0.2); |
| } |
|
|
| .typing-indicator__bubble { |
| display: flex; |
| align-items: center; |
| gap: 7px; |
| padding: 13px 18px; |
| background: var(--bg-elevated); |
| border: 1px solid var(--border-default); |
| border-radius: 16px 16px 16px 4px; |
| box-shadow: 0 0 20px rgba(59,142,255,0.08); |
| } |
|
|
| .typing-indicator__dot { |
| width: 5px; |
| height: 5px; |
| background: var(--accent-cyan); |
| border-radius: 50%; |
| animation: bounceDot 1.3s ease-in-out infinite; |
| box-shadow: 0 0 6px rgba(0,229,255,0.6); |
| } |
|
|
| .typing-indicator__label { |
| font-size: 11.5px; |
| font-family: var(--font-mono); |
| color: var(--text-tertiary); |
| margin-left: 5px; |
| letter-spacing: 0.05em; |
| } |