
        @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');
        
        body {
            font-family: 'Poppins', sans-serif;
            background-color: #f5f3ff;
            color: #333333;
            overflow-x: hidden;
        }
        
        body.dark {
            background-color: #121212;
            color: #f0f0f0;
        }
        
        .gradient-text {
            background: linear-gradient(90deg, #6d28d9, #8b5cf6, #a78bfa, #8b5cf6, #6d28d9);
            background-size: 300% 300%;
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }
        
        .dark .chat-bubble {
            background-color: #1e1e1e;
            color: #f0f0f0;
        }
        
        .chat-bubble {
            border-radius: 20px;
            box-shadow: 0 10px 20px -5px rgba(109, 40, 217, 0.2);
            transition: all 0.3s ease;
            background-color: white;
        }
        
        .chat-bubble:hover {
            transform: translateY(-3px);
            box-shadow: 0 15px 25px -5px rgba(109, 40, 217, 0.3);
        }
        
        .typing-indicator {
            display: flex;
            padding: 10px;
        }
        
        .typing-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background-color: #8b5cf6;
            margin: 0 3px;
            animation: bounce 1.5s infinite ease-in-out;
        }
        
        .dark .typing-dot {
            background-color: #a78bfa;
        }
        
        .typing-dot:nth-child(1) {
            animation-delay: 0s;
        }
        
        .typing-dot:nth-child(2) {
            animation-delay: 0.3s;
        }
        
        .typing-dot:nth-child(3) {
            animation-delay: 0.6s;
        }
        
        @keyframes bounce {
            0%, 100% {
                transform: translateY(0);
            }
            50% {
                transform: translateY(-10px);
            }
        }
        
        .intro-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            background: linear-gradient(135deg, #1e1b4b 0%, #6d28d9 100%);
            z-index: 1000;
            transition: opacity 1s ease-out;
            overflow: hidden;
        }
        
        .intro-logo {
            font-size: 4rem;
            font-weight: 700;
            margin-bottom: 2rem;
            opacity: 0;
            transform: translateY(20px);
            animation: fadeIn 1s ease-in-out 0.5s forwards, float 6s ease-in-out infinite 1.5s;
        }
        
        .intro-tagline {
            font-size: 1.5rem;
            color: rgba(255, 255, 255, 0.8);
            margin-bottom: 3rem;
            opacity: 0;
            transform: translateY(20px);
            animation: fadeIn 1s ease-in-out 1s forwards;
        }
        
        .intro-progress {
            width: 400px;
            max-width: 90vw;
            height: 14px;
            background: rgba(255, 255, 255, 0.2);
            border-radius: 7px;
            overflow: hidden;
            opacity: 0;
            animation: fadeIn 0.5s ease-in-out 1.5s forwards;
            margin: 2rem auto 0 auto;
            display: block;
        }
        
        .intro-progress-bar {
            height: 100%;
            background: white;
            width: 0%;
            animation: progressBarFill 3s ease-in-out forwards;
        }
        
        @keyframes progressBarFill {
            0% {
                width: 0%;
            }
            100% {
                width: 100%;
            }
        }
        
        .wave-bg {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 200%;
            height: 100px;
            background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none"><path d="M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z" fill="%236d28d9" opacity=".25"/><path d="M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z" fill="%236d28d9" opacity=".5"/><path d="M0,0V5.63C149.93,59,314.09,71.32,475.83,42.57c43-7.64,84.23-20.12,127.61-26.46,59-8.63,112.48,12.24,165.56,35.4C827.93,77.22,886,95.24,951.2,90c86.53-7,172.46-45.71,248.8-84.81V0Z" fill="%238b5cf6"/></svg>');
            background-size: 50% 100%;
            background-repeat: repeat-x;
            animation: wave 12s linear infinite;
            z-index: -1;
        }
        
        .model-selector {
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(10px);
            border-radius: 15px;
            padding: 1rem;
            transition: all 0.3s ease;
        }
        
        .dark .model-selector {
            background: rgba(30, 30, 30, 0.3);
        }
        
        .model-selector:hover {
            background: rgba(255, 255, 255, 0.2);
            transform: translateY(-3px);
        }
        
        .dark .model-selector:hover {
            background: rgba(30, 30, 30, 0.4);
        }
        
        .model-selector.active {
            background: rgba(255, 255, 255, 0.3);
            border: 2px solid #8b5cf6;
        }
        
        .dark .model-selector.active {
            background: rgba(30, 30, 30, 0.5);
            border: 2px solid #a78bfa;
        }
        
        .message-input {
            background: rgba(255, 255, 255, 0.9);
            border: none;
            border-radius: 15px;
            padding: 1rem 1.5rem;
            font-size: 1rem;
            box-shadow: 0 5px 15px rgba(109, 40, 217, 0.1);
            transition: all 0.3s ease;
            color: #333333;
        }
        
        .dark .message-input {
            background: rgba(30, 30, 30, 0.7);
            color: #f0f0f0;
            box-shadow: 极 0 5px 15px rgba(139, 92, 246, 0.1);
        }
        
        .message-input:focus {
            outline: none;
            box-shadow: 0 5px 20px rgba(109, 40, 217, 0.2);
        }
        
        .dark .message-input:focus {
            box-shadow: 0 5px 20px rgba(139, 92, 246, 0.3);
        }
        
        .send-button {
            background: linear-gradient(135deg, #6d28d9 0%, #8b5cf6 100%);
            color: white;
            border: none;
            border-radius: 15px;
            padding: 0.75rem 1.5rem;
            font-size: 1rem;
            cursor: pointer;
            transition: all 0.3s ease;
            box-shadow: 0 5px 15px rgba(109, 40, 217, 0.2);
        }
        
        .dark .send-button {
            background: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 100%);
            box-shadow: 0 5px 15px rgba(139, 92, 246, 0.2);
        }
        
        .send-button:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 20px rgba(109, 40, 217, 0.3);
        }
        
        .dark .send-button:hover {
            box-shadow: 0 8px 20px rgba(139, 92, 246, 0.3);
        }
        
        .send-button:active {
            transform: translateY(0);
        }
        
        .feature-card {
            background: white;
            border-radius: 15极 15px;
            padding: 1.5rem;
            box-shadow: 0 10px 20px rgba(109, 40, 217, 0.1);
            transition: all 0.3s ease;
        }
        
        .dark .feature-card {
            background: #1e1e1e;
            box-shadow: 0 10px 20px rgba(139, 92, 246, 0.1);
        }
        
        .feature-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 30px rgba(109, 40, 217, 0.2);
        }
        
        .dark .feature-card:hover {
            box-shadow: 0 15px 30px rgba(139, 92, 246, 0.2);
        }
        
        .sidebar {
            background: linear-gradient(180deg, #1e1b4b 0%, #6d28d9 100%);
            color: white;
            transition: all 0.3s ease;
            width: 280px;
            display: flex;
            flex-direction: column;
            box-shadow: 5px 0 15px rgba(0, 0, 0, 0.1);
            position: fixed;
            top: 0;
            left: 0;
            height: 100vh;
            z-index: 50;
        }
        
        .sidebar-header {
            padding: 1.5rem;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
        }
        
        .sidebar-content {
            flex: 1;
            overflow-y: auto;
            padding: 1rem;
        }
        
        .sidebar-footer {
            padding: 1rem;
            border-top: 1px solid rgba(255, 255, 255, 0.1);
        }
        
        .sidebar-item {
            padding: 0.75rem 1rem;
            border-radius: 10px;
            transition: all 0.3s ease;
            cursor: pointer;
            margin-bottom: 0.5rem;
            display: flex;
            align-items: center;
            position: relative;
        }
        
        .sidebar-item:hover {
            background: rgba(255, 255, 255, 0.1);
        }
        
        .sidebar-item.active {
            background: rgba(255, 255, 255, 0.2);
        }
        
        .sidebar-item.active::after {
            content: '';
            position: absolute;
            right: -10px;
            top: 50%;
            transform: translateY(-50%);
            width: 4px;
            height: 20px;
            background: white;
            border-radius: 2px;
        }
        
        .sidebar-item i {
            margin-right: 12px;
            width: 20px;
            text-align: center;
        }
        
        .mobile-menu-button {
            display: none;
        }
        
        .suggestion-chip {
            display: inline-block;
            background: rgba(139, 92, 246, 0.1);
            border: 1px solid rgba(139, 92, 246, 0.3);
            border-radius: 20px;
            padding: 0.5rem 1rem;
            margin: 0.25rem;
            cursor: pointer;
            transition: all 0.2s ease;
        }
        
        .dark .suggestion-chip {
            background: rgba(167, 139, 250, 0.1);
            border: 1px solid rgba(167, 139, 250, 0.3);
        }
        
        .suggestion-chip:hover {
            background: rgba(139, 92, 246, 0.2);
            transform: translateY(-2px);
        }
        
        .dark .suggestion-chip:hover {
            background: rgba(167, 139, 250, 0.2);
        }
        
        .knowledge-base {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s ease;
        }
        
        .knowledge-base.open {
            max-height: 500px;
        }
        
        .knowledge-item {
            padding: 0.75rem;
            border-radius: 10px;
            margin-bottom: 0.5rem;
            background: rgba(255, 255, 255, 0.9);
            cursor: pointer;
            transition: all 0.2s ease;
            color: #333333;
        }
        
        .dark .knowledge-item {
            background: rgba(30, 30, 30, 0.7);
            color: #f0f0f0;
        }
        
        .knowledge-item:hover {
            background: white;
            box-shadow: 0 5px 15px rgba(109, 40, 217, 0.1);
        }
        
        .dark .knowledge-item:hover {
            background: #2a2a2a;
            box-shadow: 0 5px 15px rgba(139, 92, 246, 0.1);
        }
        
        .ripple {
            position: absolute;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.3);
            transform: scale(0);
            animation: ripple 1.5s ease-out;
            pointer-events: none;
        }
        
        .dark .ripple {
            background: rgba(167, 139, 250, 0.3);
        }
        
        @keyframes ripple {
            to {
                transform: scale(4);
                opacity: 0;
            }
        }
        
        .notification {
            position: fixed;
            top: 20px;
            right: 20px;
            background: white;
            border-radius: 10px;
            padding: 1rem;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
            transform: translateY(-100px);
            opacity: 0;
            transition: all 0.3s ease;
            z-index: 100;
            max-width: 300px;
        }
        
        .dark .notification {
            background: #1e1e1e;
            color: #f0f0f0;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
        }
        
        .notification.show {
            transform: translateY(0);
            opacity: 1;
        }
        
        .main-content {
            margin-left: 280px;
            width: calc(100% - 280px);
        }
        
        .brand-animation {
            display: inline-block;
            opacity: 0;
            transform: translateY(30px);
            animation: fadeIn 0.6s ease-out forwards;
        }
        
        .voice-active {
            background-color: #ef4444 !important;
            color: white !important;
        }
        
        /* New styles for name collection modal */
        .name-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            z-index: 2000;
            display: flex;
            justify-content: center;
            align-items: center;
            opacity: 0;
            visibility: hidden;
            transition: all 0.5s ease;
        }
        
        .name-overlay.active {
            opacity: 1;
            visibility: visible;
        }
        
        .name-modal {
            background: linear-gradient(135deg, #1e1b4b 0%, #6d28d9 100%);
            color: white;
            border-radius: 20px;
            padding: 2rem;
            width: 90%;
            max-width: 500px;
            transform: scale(0.7);
            opacity: 0;
            transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            position: relative;
            overflow: hidden;
        }
        
        .name-overlay.active .name-modal {
            transform: scale(1);
            opacity: 1;
        }
        
        .name-modal::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
            animation: rotate 10s linear infinite;
            pointer-events: none;
        }
        
        @keyframes rotate {
            from {
                transform: rotate(0deg);
            }
            to {
                transform: rotate(360deg);
            }
        }
        
        .name-form {
            position: relative;
            z-index: 10;
        }
        
        .name-input {
            width: 100%;
            padding: 1rem;
            border-radius: 12px;
            border: none;
            background: rgba(255, 255, 255, 0.15);
            color: white;
            font-size: 1.1rem;
            margin: 1.5rem 0;
            transition: background 0.3s ease;
        }
        
        .name-input::placeholder {
            color: rgba(255, 255, 255, 0.7);
        }
        
        .name-input:focus {
            outline: none;
            background: rgba(255, 255, 255, 0.25);
        }
        
        .submit-name {
            background: white;
            color: #6d28d9;
            border: none;
            padding: 1rem 2rem;
            border-radius: 12px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            width: 100%;
            font-size: 1.1rem;
        }
        
        .submit-name:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
        }
        
        .user-name-display {
            display: flex;
            align-items: center;
            background: rgba(255, 255, 255, 0.15);
            padding: 0.5rem 1rem;
            border-radius: 20px;
            margin-left: auto;
        }
        
        /* New greeting styles */
        .greeting-container {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 1.5rem;
            padding: 0 1rem;
        }
        
        .greeting-text {
            font-size: 1.75rem;
            font-weight: 700;
            margin-bottom: 0.25rem;
            color: #6d28d9;
            animation: fadeIn 0.8s ease-out;
        }
        
        .dark .greeting-text {
            color: #8b5cf6;
        }
        
        .greeting-subtext {
            font-size: 1rem;
            color: #6b7280;
            animation: fadeIn 0.8s ease-out;
        }
        
        .dark .greeting-subtext {
            color: #9ca3af;
        }
        
        .model-selectors-container {
            display: flex;
            gap: 0.5rem;
        }
        
        @media (max-width: 768px) {
            .mobile-menu-button {
                display: block;
            }
            
            .sidebar {
                position: fixed;
                top: 0;
                left: -100%;
                width: 80%;
                height: 100%;
                z-index: 100;
                transition: all 0.3s ease;
            }
            
            .sidebar.open {
                left: 0;
            }
            
            .intro-logo {
                font-size: 2.5rem;
            }
            
            .intro-tagline {
                font-size: 1.2rem;
                text-align: center;
                padding: 0 1rem;
            }
            
            .main-content {
                margin-left: 0;
                width: 100%;
            }
            
            .greeting-container {
                flex-direction: column;
                align-items: flex-start;
                gap: 1rem;
            }
            
            .model-selectors-container {
                width: 100%;
                overflow-x: auto;
                justify-content: flex-start;
                padding-bottom: 0.5rem;
            }
        }
        
        /* Improved brand animation */
        .nova-title {
            position: relative;
            display: inline-block;
            overflow: hidden;
        }
        
        .nova-title span {
            position: relative;
            display: inline-block;
            font-weight: 800;
            font-size: 4rem;
            opacity: 0;
            color: white;
            text-shadow: 0 0 15px rgba(255, 255, 255, 0.5);
            animation: novaIn 0.6s forwards, novaGlow 2s infinite 1s;
        }
        
        .nova-title span:nth-child(1) { animation-delay: 0s; }
        .nova-title span:nth-child(2) { animation-delay: 0.1s; }
        .nova-title span:nth-child(3) { animation-delay: 0.2s; }
        .nova-title span:nth-child(4) { animation-delay: 0.3s; }
        .nova-title span:nth-child(5) { animation-delay: 0.4s; }
        .nova-title span:nth-child(6) { animation-delay: 0.5s; }
        .nova-title span:nth-child(7) { animation-delay: 0.6s; }
        .nova-title span:nth-child(8) { animation-delay: 0.7s; }
        
        @keyframes novaIn {
            0% {
                transform: translateY(100px) rotate(15deg);
                opacity: 0;
            }
            100% {
                transform: translateY(0) rotate(0);
                opacity: 1;
            }
        }
        
        @keyframes novaGlow {
            0%, 100% {
                text-shadow: 0 0 10px rgba(255, 255, 255, 0.5), 0 0 20px rgba(139, 92, 246, 0.8);
            }
            50% {
                text-shadow: 0 0 15px rgba(255, 255, 255, 0.8), 0 0 30px rgba(139, 92, 246, 1);
            }
        }
        
        @keyframes fadeIn {
            0% {
                opacity: 0;
                transform: translateY(20px);
            }
            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }
    