""" CSS styles for FeedHire Gradio interface """ CUSTOM_CSS = """ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap'); * { font-family: 'Inter', sans-serif !important; } .gradio-container { max-width: 1400px !important; margin: auto !important; } .transparent-box { background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; } .transparent-box, .transparent-box > div, .transparent-box * { background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; } /* Animations */ @keyframes fadeInDown { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes scaleIn { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; transform: scale(1); } } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } @keyframes glow { 0%, 100% { box-shadow: 0 0 20px rgba(255, 126, 0, 0.5); } 50% { box-shadow: 0 0 40px rgba(255, 126, 0, 0.8); } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-50px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(50px); } to { opacity: 1; transform: translateX(0); } } /* Hero Section */ #hero-section, #hero-section > div, #hero-section > div > div { background: transparent !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; } .hero-column > div { background: transparent !important; padding: 0 !important; margin: 0 !important; } .logo-container { animation: scaleIn 1s ease-out 0.3s both; display: flex; justify-content: center; align-items: center; background: rgba(255,255,255,0.15); border-radius: 20px; padding: 15px; backdrop-filter: blur(10px); border: 2px solid rgba(255,255,255,0.3); transition: all 0.4s ease; } .logo-container:hover { transform: scale(1.05) rotate(2deg); box-shadow: 0 10px 30px rgba(0,0,0,0.3); } .hero-title { animation: fadeInUp 1s ease-out 0.5s both; } .hero-subtitle { animation: fadeInUp 1s ease-out 0.7s both; } /* Status Container */ .status-container { display: flex; gap: 15px; justify-content: flex-end; align-items: center; padding: 12px 20px; background: rgba(15,23,42,0.7); border-radius: 12px; backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.15); animation: fadeInRight 1s ease-out 0.9s both; transition: all 0.3s ease; } .status-container:hover { background: rgba(15,23,42,0.85); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,0.3); } .status-item { display: flex; align-items: center; gap: 8px; } .status-icon { font-size: 20px; animation: pulse 2s ease-in-out infinite; } .status-label { font-size: 10px; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; } .status-value { font-size: 13px; font-weight: 700; } .status-divider { width: 1px; height: 30px; background: rgba(255,255,255,0.2); } /* Banner Animation */ .info-banner { animation: fadeInUp 1s ease-out 1.1s both; } /* Form Section */ .form-section { animation: slideInLeft 0.8s ease-out 0.3s both; border: 2px solid #FF7E00; border-radius: 16px; padding: 25px; background: rgba(255,255,255,0.05); box-shadow: 0 10px 30px rgba(255, 126, 0, 0.2); } #job-form { border: 2px solid #FF7E00; border-radius: 16px; padding: 25px; background: rgba(255,255,255,0.05); box-shadow: 0 10px 30px rgba(255,126,0,0.2); } .benefits-section { animation: slideInRight 0.8s ease-out 0.3s both; } /* Input Focus Effects */ textarea:focus, input:focus { outline: none !important; border: 2px solid #FF7E00 !important; box-shadow: 0 0 0 3px rgba(255, 126, 0, 0.1), 0 0 20px rgba(255, 126, 0, 0.2) !important; transition: all 0.3s ease !important; } /* Button Styles */ button[variant="primary"] { background: linear-gradient(135deg, #FF7E00 0%, #FF9A3C 100%) !important; border: none !important; font-weight: 700 !important; transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important; position: relative !important; overflow: hidden !important; } button[variant="primary"]::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; border-radius: 50%; background: rgba(255,255,255,0.3); transform: translate(-50%, -50%); transition: width 0.6s, height 0.6s; } button[variant="primary"]:hover::before { width: 300px; height: 300px; } button[variant="primary"]:hover { transform: translateY(-4px) scale(1.02) !important; box-shadow: 0 15px 40px rgba(255, 126, 0, 0.5) !important; } button[variant="primary"]:active { transform: translateY(-2px) scale(0.98) !important; } .refresh-btn { font-size: 12px !important; padding: 6px 14px !important; background: transparent !important; border: 1px solid #FF7E00 !important; color: white !important; border-radius: 8px !important; transition: all 0.3s ease !important; font-weight: 600 !important; } .refresh-btn:hover { background: linear-gradient(135deg, rgba(255, 126, 0, 0.3), rgba(255, 154, 60, 0.4)) !important; box-shadow: 0 0 15px rgba(255, 126, 0, 0.8), 0 0 25px rgba(255, 154, 60, 0.6); transition: all 0.5s ease; color: #FF7E00 !important; } /* Benefit Cards */ .benefit-card { display: flex; align-items: center; padding: 12px 15px; border-radius: 14px; background: rgba(255, 126, 0, 0.2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 126, 0, 0.4); margin: 8px auto; max-width: 90%; box-shadow: 0 4px 20px rgba(0,0,0,0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; font-size: 14px; opacity: 0; transform: translateY(20px); } .benefit-card.animate { animation: fadeInUp 0.6s ease-out forwards; } .benefit-card:nth-child(1) { animation-delay: 0.1s; } .benefit-card:nth-child(2) { animation-delay: 0.2s; } .benefit-card:nth-child(3) { animation-delay: 0.3s; } .benefit-card:nth-child(4) { animation-delay: 0.4s; } .benefit-card:hover { transform: scale(1.03); box-shadow: 0 8px 30px rgba(0,0,0,0.15); } .benefit-card .icon { font-size: 24px; margin-right: 12px; } .benefit-card .text { color: #fff; } .benefit-card .text .title { font-weight: 700; margin-right: 6px; } .benefit-card .text .desc { color: rgba(255,255,255,0.85); } /* How It Works Cards */ .how-it-works-card { background: rgba(255,255,255,0.15); backdrop-filter: blur(10px); border-radius: 16px; padding: 30px; border: 2px solid rgba(255,255,255,0.2); transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); opacity: 0; transform: scale(0.8); } .how-it-works-card.animate { animation: scaleIn 0.6s ease-out forwards; } .how-it-works-card:nth-child(1) { animation-delay: 0.2s; } .how-it-works-card:nth-child(2) { animation-delay: 0.4s; } .how-it-works-card:nth-child(3) { animation-delay: 0.6s; } .how-it-works-card:hover { transform: translateY(-10px) scale(1.05); box-shadow: 0 20px 50px rgba(0,0,0,0.3); border-color: rgba(255,255,255,0.4); } .how-it-works-card .emoji { display: inline-block; transition: transform 0.3s ease; } .how-it-works-card:hover .emoji { transform: scale(1.2) rotate(10deg); } /* Success Link */ #success-link-box { text-align: center; padding: 1.5rem; background: linear-gradient(135deg, #FF7E00 0%, #FF9A3C 100%); border-radius: 12px; box-shadow: 0 10px 30px rgba(255, 126, 0, 0.3); animation: slideInUp 0.5s ease-out, glow 2s ease-in-out infinite; } @keyframes slideInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } #success-link-box a { font-size: 1.2rem; font-weight: 700; color: white !important; text-decoration: none; transition: all 0.3s ease; } #success-link-box a:hover { text-decoration: underline; transform: scale(1.05); display: inline-block; } /* Benefits Box */ #benefits-box { background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); padding: 35px; border-radius: 20px; height: 100%; display: flex; flex-direction: column; gap: 25px; box-shadow: 0 25px 70px rgba(0,0,0,0.4); border: 1px solid rgba(255,255,255,0.1); position: relative; overflow: hidden; } #benefits-box::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at top right, rgba(255, 126, 0, 0.1) 0%, transparent 70%); pointer-events: none; } /* Responsive */ @media (max-width: 768px) { #hero-section { padding: 2rem 1.5rem; } .status-container { flex-direction: column; gap: 10px; } .status-divider { width: 100%; height: 1px; } } """