/* Custom styles */
html {
-webkit-tap-highlight-color: transparent;
}
body {
font-family: 'Inter', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* Animations */
@keyframes fadeInDown {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes slideUp {
from { transform: translateY(100%); }
to { transform: translateY(0); }
}
@keyframes slideDown {
from { transform: translateY(0); }
to { transform: translateY(100%); }
}
@keyframes flash {
0%, 100% { background-color: transparent; }
50% { background-color: rgba(79, 70, 229, 0.1); }
}
.view-transition {
animation: fadeInDown 0.3s ease-in-out;
}
.flash-update {
animation: flash 1s ease-in-out;
}
.bottom-sheet-visible {
animation: slideUp 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
.bottom-sheet-hidden {
animation: slideDown 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
/* Splash Screen Animations */
@keyframes aurora {
0% { transform: translate(var(--x-start), var(--y-start)) scale(1); }
50% { transform: translate(var(--x-mid), var(--y-mid)) scale(1.2); }
100% { transform: translate(var(--x-end), var(--y-end)) scale(1); }
}
.aurora-blob {
animation: aurora 20s ease-in-out infinite alternate;
}
@keyframes pulse-logo {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}
.pulse-logo-animation {
animation: pulse-logo 3s ease-in-out infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
.svg-loader {
animation: spin 1s linear infinite;
}
#splash-view {
transition: opacity 0.5s ease-in-out;
}
/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #1a202c; } /* gray-800 */
::-webkit-scrollbar-thumb { background: #4a5568; border-radius: 10px; } /* gray-600 */
::-webkit-scrollbar-thumb:hover { background: #718096; } /* gray-500 */
/* Modal */
.modal-backdrop { background-color: rgba(0, 0, 0, 0.5); transition: opacity 0.3s ease-in-out; }
.modal-content { transform: scale(0.95); opacity: 0; transition: all 0.3s ease-in-out; }
.modal-visible .modal-backdrop { opacity: 1; }
.modal-visible .modal-content { transform: scale(1); opacity: 1; }
/* Action icon hover effect */
.action-icon { transition: transform 0.2s ease-in-out, background-color 0.2s ease-in-out; }
.action-icon:hover { transform: scale(1.15); }
/* Bottom Navigation */
.nav-item { transition: background-color 0.2s ease-in-out; }
.nav-item-active { background-color: rgba(99, 102, 241, 0.1); }
.nav-item-active svg { color: #4f46e5; }
.nav-item-active span { color: #f9fafb; }
/* Loading Bar */
#loading-bar {
position: fixed;
top: 0;
left: 0;
width: 0%;
height: 3px;
background-color: #4f46e5;
z-index: 9999;
transition: width 0.3s ease-out;
}
/* Custom Dropdown */
.custom-dropdown-options {
transform-origin: top;
transition: transform 0.2s ease-out, opacity 0.2s ease-out;
}
/* Add Funds Step Animation */
.form-step {
display: none;
animation: fadeInDown 0.5s ease-in-out;
}
.form-step.active {
display: block;
}
/* Custom Radio Button Style */
.custom-radio-label {
transition: all 0.2s ease-in-out;
}
.peer:checked ~ .custom-radio-label {
border-color: #4f46e5; /* indigo-600 */
background-color: rgba(99, 102, 241, 0.1);
}
.peer:checked ~ .custom-radio-label svg {
color: #818cf8; /* indigo-400 */
}