| |
| :root { |
| --primary-500: #8b5cf6; |
| --secondary-500: #14b8a6; |
| --bg-primary: #111827; |
| --bg-secondary: #1f2937; |
| --text-primary: #ffffff; |
| --text-secondary: #9ca3af; |
| } |
|
|
| :root.light-mode { |
| --bg-primary: #f9fafb; |
| --bg-secondary: #ffffff; |
| --text-primary: #111827; |
| --text-secondary: #6b7280; |
| } |
|
|
| |
| * { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
|
|
| body { |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; |
| background-color: var(--bg-primary); |
| color: var(--text-primary); |
| transition: background-color 0.3s ease, color 0.3s ease; |
| overflow-x: hidden; |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 10px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: var(--bg-secondary); |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: var(--primary-500); |
| border-radius: 5px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: var(--secondary-500); |
| } |
|
|
| |
| @keyframes float { |
| 0%, 100% { |
| transform: translateY(0) rotate(0deg); |
| } |
| 50% { |
| transform: translateY(-20px) rotate(180deg); |
| } |
| } |
|
|
| @keyframes glow { |
| 0% { |
| filter: drop-shadow(0 0 10px var(--primary-500)); |
| } |
| 100% { |
| filter: drop-shadow(0 0 20px var(--secondary-500)); |
| } |
| } |
|
|
| @keyframes slideUp { |
| from { |
| opacity: 0; |
| transform: translateY(30px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
|
|
| @keyframes slideDown { |
| from { |
| opacity: 0; |
| transform: translateY(-30px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
|
|
| @keyframes fadeIn { |
| from { |
| opacity: 0; |
| } |
| to { |
| opacity: 1; |
| } |
| } |
|
|
| @keyframes pulse { |
| 0%, 100% { |
| transform: scale(1); |
| } |
| 50% { |
| transform: scale(1.05); |
| } |
| } |
|
|
| |
| .animate-float { |
| animation: float 6s ease-in-out infinite; |
| } |
|
|
| .animate-glow { |
| animation: glow 2s ease-in-out infinite alternate; |
| } |
|
|
| .animate-pulse-custom { |
| animation: pulse 0.5s ease-in-out; |
| } |
|
|
| |
| .glass { |
| background: rgba(31, 41, 55, 0.4); |
| backdrop-filter: blur(10px); |
| border: 1px solid rgba(139, 92, 246, 0.2); |
| } |
|
|
| .light-mode .glass { |
| background: rgba(255, 255, 255, 0.6); |
| border: 1px solid rgba(139, 92, 246, 0.1); |
| } |
|
|
| |
| .gradient-overlay { |
| position: absolute; |
| inset: 0; |
| background: linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(20, 184, 166, 0.1) 100%); |
| } |
|
|
| |
| .hover-lift { |
| transition: transform 0.3s ease, box-shadow 0.3s ease; |
| } |
|
|
| .hover-lift:hover { |
| transform: translateY(-10px) rotateX(5deg); |
| box-shadow: 0 20px 40px rgba(139, 92, 246, 0.2); |
| } |
|
|
| |
| .custom-cursor { |
| width: 20px; |
| height: 20px; |
| border: 2px solid var(--primary-500); |
| border-radius: 50%; |
| position: fixed; |
| pointer-events: none; |
| z-index: 9999; |
| transition: transform 0.1s ease; |
| mix-blend-mode: difference; |
| } |
|
|
| |
| .section-hidden { |
| opacity: 0; |
| transform: translateY(50px); |
| transition: opacity 0.8s ease, transform 0.8s ease; |
| } |
|
|
| .section-visible { |
| opacity: 1; |
| transform: translateY(0); |
| } |
|
|
| |
| input, textarea { |
| transition: border-color 0.3s ease, box-shadow 0.3s ease; |
| } |
|
|
| input:focus, textarea:focus { |
| box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1); |
| } |
|
|
| |
| .btn-primary { |
| background: linear-gradient(135deg, var(--primary-500), var(--secondary-500)); |
| border: none; |
| color: white; |
| padding: 12px 32px; |
| border-radius: 50px; |
| font-weight: 600; |
| cursor: pointer; |
| transition: transform 0.3s ease, box-shadow 0.3s ease; |
| } |
|
|
| .btn-primary:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 10px 25px rgba(139, 92, 246, 0.3); |
| } |
|
|
| |
| @media (max-width: 768px) { |
| h1 { |
| font-size: 2.5rem !important; |
| } |
| h2 { |
| font-size: 2rem !important; |
| } |
| } |
|
|
| |
| .light-mode { |
| background-color: #f9fafb; |
| color: #111827; |
| } |
|
|
| .light-mode .bg-gray-800 { |
| background-color: #ffffff !important; |
| } |
|
|
| .light-mode .bg-gray-900 { |
| background-color: #f3f4f6 !important; |
| } |
|
|
| .light-mode .text-gray-400 { |
| color: #4b5563 !important; |
| } |
|
|
| .light-mode .border-gray-700 { |
| border-color: #e5e7eb !important; |
| } |
|
|
| |
| .success-message { |
| background: linear-gradient(135deg, #10b981, #14b8a6); |
| color: white; |
| padding: 12px 24px; |
| border-radius: 8px; |
| margin-top: 16px; |
| opacity: 0; |
| transform: translateY(-10px); |
| transition: opacity 0.3s ease, transform 0.3s ease; |
| } |
|
|
| .success-message.show { |
| opacity: 1; |
| transform: translateY(0); |
| } |
|
|
| |
| .portfolio-item-enter { |
| opacity: 0; |
| transform: scale(0.9) rotateY(10deg); |
| } |
|
|
| .portfolio-item-enter-active { |
| opacity: 1; |
| transform: scale(1) rotateY(0); |
| transition: opacity 0.6s ease, transform 0.6s ease; |
| } |