Spaces:
Runtime error
Runtime error
| @import "tailwindcss"; | |
| :root { | |
| /* Warm, educational color palette */ | |
| --color-primary: #1e3a5f; | |
| --color-primary-light: #2d5a87; | |
| --color-accent: #e76f51; | |
| --color-accent-light: #f4a261; | |
| --color-success: #2a9d8f; | |
| --color-warning: #e9c46a; | |
| --color-background: #faf8f5; | |
| --color-surface: #ffffff; | |
| --color-text: #1a1a2e; | |
| --color-text-muted: #64748b; | |
| --color-border: #e2e0dc; | |
| /* Glassmorphism */ | |
| --glass-bg: rgba(255, 255, 255, 0.85); | |
| --glass-border: rgba(255, 255, 255, 0.5); | |
| color-scheme: light; | |
| } | |
| :root[data-color-scheme="dark"] { | |
| --color-primary: #5b8fb9; | |
| --color-primary-light: #7eb8da; | |
| --color-accent: #f4a261; | |
| --color-accent-light: #e76f51; | |
| --color-success: #4fd1c5; | |
| --color-warning: #fbd38d; | |
| --color-background: #0f172a; | |
| --color-surface: #1e293b; | |
| --color-text: #f1f5f9; | |
| --color-text-muted: #94a3b8; | |
| --color-border: #334155; | |
| --glass-bg: rgba(30, 41, 59, 0.85); | |
| --glass-border: rgba(51, 65, 85, 0.5); | |
| color-scheme: dark; | |
| } | |
| @media (prefers-color-scheme: dark) { | |
| :root:not([data-color-scheme]) { | |
| --color-primary: #5b8fb9; | |
| --color-primary-light: #7eb8da; | |
| --color-accent: #f4a261; | |
| --color-accent-light: #e76f51; | |
| --color-success: #4fd1c5; | |
| --color-warning: #fbd38d; | |
| --color-background: #0f172a; | |
| --color-surface: #1e293b; | |
| --color-text: #f1f5f9; | |
| --color-text-muted: #94a3b8; | |
| --color-border: #334155; | |
| --glass-bg: rgba(30, 41, 59, 0.85); | |
| --glass-border: rgba(51, 65, 85, 0.5); | |
| color-scheme: dark; | |
| } | |
| } | |
| @theme inline { | |
| --color-background: var(--color-background); | |
| --color-foreground: var(--color-text); | |
| --font-sans: 'Instrument Sans', system-ui, sans-serif; | |
| --font-display: 'Fraunces', Georgia, serif; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| margin: 0; | |
| padding: 0; | |
| background: var(--color-background); | |
| color: var(--color-text); | |
| font-family: var(--font-sans); | |
| font-size: 16px; | |
| line-height: 1.6; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| /* Background pattern */ | |
| body::before { | |
| content: ''; | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| right: 0; | |
| bottom: 0; | |
| background: | |
| radial-gradient(circle at 20% 20%, rgba(231, 111, 81, 0.08) 0%, transparent 50%), | |
| radial-gradient(circle at 80% 80%, rgba(42, 157, 143, 0.08) 0%, transparent 50%), | |
| radial-gradient(circle at 50% 50%, rgba(30, 58, 95, 0.05) 0%, transparent 70%); | |
| pointer-events: none; | |
| z-index: -1; | |
| } | |
| /* Typography */ | |
| h1, h2, h3, h4, h5, h6 { | |
| font-family: var(--font-display); | |
| font-weight: 600; | |
| line-height: 1.2; | |
| margin: 0; | |
| } | |
| /* Custom scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: transparent; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--color-border); | |
| border-radius: 4px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--color-text-muted); | |
| } | |
| /* Button styles */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem 1.5rem; | |
| font-family: var(--font-sans); | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| border-radius: 12px; | |
| border: none; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| text-decoration: none; | |
| } | |
| .btn-primary { | |
| background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%); | |
| color: white; | |
| box-shadow: 0 4px 14px rgba(30, 58, 95, 0.25); | |
| } | |
| .btn-primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(30, 58, 95, 0.35); | |
| } | |
| .btn-accent { | |
| background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-light) 100%); | |
| color: white; | |
| box-shadow: 0 4px 14px rgba(231, 111, 81, 0.25); | |
| } | |
| .btn-accent:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(231, 111, 81, 0.35); | |
| } | |
| .btn-outline { | |
| background: transparent; | |
| color: var(--color-text); | |
| border: 2px solid var(--color-border); | |
| } | |
| .btn-outline:hover { | |
| border-color: var(--color-primary); | |
| color: var(--color-primary); | |
| } | |
| /* Card styles */ | |
| .card { | |
| background: var(--glass-bg); | |
| backdrop-filter: blur(20px); | |
| border: 1px solid var(--glass-border); | |
| border-radius: 20px; | |
| box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06); | |
| } | |
| /* Input styles */ | |
| .input { | |
| width: 100%; | |
| padding: 0.875rem 1rem; | |
| font-family: var(--font-sans); | |
| font-size: 1rem; | |
| color: var(--color-text); | |
| background: var(--color-surface); | |
| border: 2px solid var(--color-border); | |
| border-radius: 12px; | |
| outline: none; | |
| transition: all 0.2s ease; | |
| } | |
| .input:focus { | |
| border-color: var(--color-primary); | |
| box-shadow: 0 0 0 4px rgba(30, 58, 95, 0.1); | |
| } | |
| .input::placeholder { | |
| color: var(--color-text-muted); | |
| } | |
| /* Badge styles */ | |
| .badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.25rem; | |
| padding: 0.25rem 0.75rem; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| border-radius: 9999px; | |
| } | |
| .badge-success { | |
| background: rgba(42, 157, 143, 0.15); | |
| color: var(--color-success); | |
| } | |
| .badge-warning { | |
| background: rgba(233, 196, 106, 0.2); | |
| color: #b7791f; | |
| } | |
| /* Animations */ | |
| @keyframes fadeInUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.6; | |
| } | |
| } | |
| @keyframes float { | |
| 0%, 100% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-10px); | |
| } | |
| } | |
| .animate-fade-in-up { | |
| animation: fadeInUp 0.6s ease-out forwards; | |
| } | |
| .animate-pulse { | |
| animation: pulse 2s ease-in-out infinite; | |
| } | |
| .animate-float { | |
| animation: float 6s ease-in-out infinite; | |
| } | |
| /* Staggered animations */ | |
| .stagger-1 { animation-delay: 0.1s; } | |
| .stagger-2 { animation-delay: 0.2s; } | |
| .stagger-3 { animation-delay: 0.3s; } | |
| .stagger-4 { animation-delay: 0.4s; } | |
| .stagger-5 { animation-delay: 0.5s; } | |
| /* Utility classes */ | |
| .text-gradient { | |
| background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* ChatKit customization - Force Traditional Chinese */ | |
| .chatkit-container, | |
| [data-chatkit-composer] { | |
| /* Force zh-TW locale */ | |
| } | |
| /* Override ChatKit placeholder text to Traditional Chinese */ | |
| [data-chatkit-composer] textarea::placeholder, | |
| [data-chatkit-composer] input::placeholder, | |
| .chatkit-composer textarea::placeholder, | |
| .chatkit-composer input::placeholder { | |
| /* This may not work as ChatKit uses iframe */ | |
| } | |
| /* ChatKit customization */ | |
| .chatkit-container { | |
| --ck-color-primary: var(--color-primary); | |
| --ck-color-background: var(--color-surface); | |
| --ck-border-radius: 16px; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| /* Ensure ChatKit elements are visible */ | |
| .chatkit-container > * { | |
| min-height: 0; | |
| flex: 1; | |
| } | |
| /* Make sure the input area is always visible */ | |
| [data-chatkit-composer], | |
| [class*="composer"], | |
| [class*="Composer"] { | |
| position: relative ; | |
| z-index: 10; | |
| } | |