Mirxa1's picture
Continue completing
3353981 verified
/* SoulSync Global Styles */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', sans-serif;
background: linear-gradient(135deg, #0f172a 0%, #111827 50%, #1f2937 100%);
min-height: 100vh;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: #1f2937;
}
::-webkit-scrollbar-thumb {
background: linear-gradient(45deg, #d946ef, #8b5cf6);
border-radius: 3px;
}
/* Animations */
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
@keyframes glow {
0%, 100% { box-shadow: 0 0 20px rgba(217, 70, 239, 0.3); }
50% { box-shadow: 0 0 40px rgba(217, 70, 239, 0.6); }
}
@keyframes pulse-glow {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
.floating {
animation: float 3s ease-in-out infinite;
}
.glow {
animation: glow 2s ease-in-out infinite alternate;
}
.pulse-glow {
animation: pulse-glow 2s ease-in-out infinite;
}
/* Chat bubble animations */
.chat-bubble {
transform-origin: left bottom;
animation: messageAppear 0.3s ease-out;
}
@keyframes messageAppear {
from {
opacity: 0;
transform: scale(0.8) translateY(10px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}
/* Voice recording animation */
.voice-recording {
animation: voicePulse 1.5s ease-in-out infinite;
}
@keyframes voicePulse {
0%, 100% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.05); opacity: 0.8; }
}
/* Typing indicator */
.typing-dot {
animation: typingAnimation 1.4s infinite ease-in-out;
}
.typing-dot:nth-child(1) { animation-delay: -0.32s; }
.typing-dot:nth-child(2) { animation-delay: -0.16s; }
@keyframes typingAnimation {
0%, 80%, 100% { transform: scale(0); }
40% { transform: scale(1); }
}
/* Gradient text */
.gradient-text {
background: linear-gradient(45deg, #d946ef, #8b5cf6);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Glass morphism effect */
.glass {
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
}
/* Button hover effects */
.btn-primary {
background: linear-gradient(45deg, #d946ef, #8b5cf6);
transition: all 0.3s ease;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 10px 25px rgba(217, 70, 239, 0.3);
}
/* Progress bar animation */
.progress-fill {
transition: width 0.5s ease-in-out;
}
/* Emotional state indicators */
.emotion-happy { color: #10b981; }
.emotion-neutral { color: #6b7280; }
.emotion-sad { color: #ef4444; }
.emotion-excited { color: #f59e0b; }
.emotion-calm { color: #3b82f6; }
/* RTL support for Arabic */
[dir="rtl"] .chat-bubble-user {
transform-origin: right bottom;
}
/* Mobile optimizations */
@media (max-width: 768px) {
.mobile-padding {
padding-left: 1rem;
padding-right: 1rem;
}
}
/* Dark mode enhancements */
.dark-mode-toggle {
transition: all 0.3s ease;
}
.dark-mode-toggle:hover {
transform: rotate(12deg);
}
/* Subscription tier cards */
.tier-card {
transition: all 0.3s ease;
border: 2px solid transparent;
}
.tier-card:hover {
border-color: #d946ef;
transform: translateY(-5px);
}
/* Loading spinner */
.loading-spinner {
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
/* Voice waveform */
.voice-wave {
animation: wave 1.5s infinite ease-in-out;
}
.voice-wave:nth-child(2) { animation-delay: -0.3s; }
.voice-wave:nth-child(3) { animation-delay: -0.6s; }
.voice-wave:nth-child(4) { animation-delay: -0.9s; }
@keyframes wave {
0%, 100% { transform: scaleY(0.3); }
50% { transform: scaleY(1); }
}
/* Accessibility improvements */
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}