/* Linear Portfolio Template Styles */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; color: #1f2937; } /* Custom animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } } /* Animation classes */ .animate-fade-in-up { animation: fadeInUp 0.8s ease-out forwards; } .animate-slide-in-left { animation: slideInLeft 0.8s ease-out forwards; } .animate-slide-in-right { animation: slideInRight 0.8s ease-out forwards; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: #f1f5f9; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } /* Form styles */ input:focus, textarea:focus { outline: none; ring: 2px; ring-color: #000000; border-color: #000000; } /* Smooth transitions */ a, button { transition: all 0.2s ease-in-out; } /* Mobile optimizations */ @media (max-width: 768px) { .mobile-menu { border-top: 1px solid #f1f5f9; margin-top: 1rem; padding-top: 1rem; } } /* Hero section responsive text */ @media (max-width: 640px) { .hero-text { font-size: 3rem; line-height: 1.1; } } /* Loading animation for images */ img { transition: opacity 0.3s ease-in-out; } img[loading] { opacity: 0; } img[loaded] { opacity: 1; } /* Custom focus styles for accessibility */ a:focus, button:focus { outline: 2px solid #000000; outline-offset: 2px; } /* Gradient text effect */ .gradient-text { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Card hover effects */ .card-hover { transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out; } .card-hover:hover { transform: translateY(-4px); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } /* Button press effect */ .btn-press:active { transform: scale(0.98); } /* Custom spacing for sections */ .section-padding { padding-top: 6rem; padding-bottom: 6rem; } @media (max-width: 768px) { .section-padding { padding-top: 4rem; padding-bottom: 4rem; } } /* Glass morphism effect */ .glass { background: rgba(255, 255, 255, 0.25); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.18); } /* Notification styles */ .notification { position: fixed; top: 20px; right: 20px; background: white; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); z-index: 1000; transform: translateX(100%); transition: transform 0.3s ease-in-out; } .notification.show { transform: translateX(0); } /* Dark mode support */ @media (prefers-color-scheme: dark) { .dark-mode-toggle { background: #1f2937; color: #f9fafb; } }