Spaces:
Running
Running
| ```css | |
| /* Global animations */ | |
| .fade-in { | |
| animation: fadeIn 0.5s ease-in; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| /* Certificate card animation */ | |
| .certificate-card { | |
| transition: all 0.3s ease; | |
| } | |
| .certificate-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 10px 20px rgba(0,0,0,0.1); | |
| } | |
| /* Button animations */ | |
| .btn-pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.7); } | |
| 70% { box-shadow: 0 0 0 10px rgba(74, 222, 128, 0); } | |
| 100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0); } | |
| } | |
| /* Loading spinner */ | |
| .spinner { | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| /* Responsive layout adjustments */ | |
| @media (max-width: 768px) { | |
| .responsive-flex { | |
| flex-direction: column; | |
| } | |
| } | |
| ``` |