/* ============================================================================= 1. GLOBAL STYLES - Used across ALL pages (index.html, calculate.html, recommendation.html) ============================================================================= */ /* ----------------------------------------------------------------------------- 1.1 CSS Variables & Design Tokens ----------------------------------------------------------------------------- */ :root { /* Color System - Human Centric */ --primary-color: #3B82F6; --primary-hover: #2563EB; --secondary-color: #64748B; --accent-color: #8B5CF6; --success: #10B981; --warning: #F59E0B; --danger: #EF4444; /* Backgrounds */ --bg-body: #F8FAFC; --bg-surface: #FFFFFF; --bg-subtle: #F1F5F9; --glass-bg: rgba(255, 255, 255, 0.95); /* Typography */ --text-main: #1E293B; --text-muted: #64748B; --text-light: #94A3B8; /* Spacing & Layout */ --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2rem; /* Borders & Radius */ --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --border-color: #E2E8F0; --border-subtle: #F1F5F9; /* Shadows */ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-glow: 0 0 20px rgba(59, 130, 246, 0.15); } /* ----------------------------------------------------------------------------- 1.2 Base Reset & Typography (All Pages) ----------------------------------------------------------------------------- */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Plus Jakarta Sans', 'Outfit', sans-serif; background-color: var(--bg-body); color: var(--text-main); line-height: 1.6; overflow-x: hidden; width: 100%; } a { text-decoration: none; color: inherit; transition: color 0.2s ease; } ul { list-style: none; } img { max-width: 100%; height: auto; } /* ----------------------------------------------------------------------------- 1.3 Background Effect (All Pages) ----------------------------------------------------------------------------- */ .background-glow { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: -1; background: radial-gradient(circle at 10% 20%, rgba(59, 130, 246, 0.05) 0%, transparent 40%), radial-gradient(circle at 90% 80%, rgba(139, 92, 246, 0.05) 0%, transparent 40%); } /* ----------------------------------------------------------------------------- 1.4 Container (All Pages) ----------------------------------------------------------------------------- */ .container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-md); } /* ----------------------------------------------------------------------------- 1.5 Header & Navigation (All Pages) ----------------------------------------------------------------------------- */ .site-header { background: var(--glass-bg); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid var(--border-subtle); padding: var(--space-md) 0; } .header-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-md); display: flex; justify-content: space-between; align-items: center; } .brand { display: flex; align-items: center; gap: var(--space-sm); font-weight: 700; font-size: 1.5rem; color: var(--text-main); } .heart-icon { animation: heartbeat 1.5s infinite; } .nav-links { display: flex; align-items: center; gap: 2rem; } .nav-links a { font-weight: 500; color: var(--text-muted); } .nav-links a:hover, .nav-links a.active { color: var(--primary-color); } .btn-start { background: var(--primary-color); color: white !important; padding: 0.5rem 1.25rem; border-radius: 100px; transition: all 0.3s ease; } .btn-start:hover { background: var(--primary-hover); transform: translateY(-2px); box-shadow: var(--shadow-md); } /* ============================================================================= 2. HOME PAGE STYLES (index.html) ============================================================================= */ /* ----------------------------------------------------------------------------- 2.1 Hero Section (index.html) ----------------------------------------------------------------------------- */ .hero { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; padding: 6rem 0; min-height: 80vh; } .hero h1 { font-size: 3.5rem; line-height: 1.2; margin-bottom: 1.5rem; font-weight: 800; letter-spacing: -0.02em; } .hero p { font-size: 1.25rem; color: var(--text-muted); margin-bottom: 2.5rem; max-width: 540px; } .hero-btn { display: inline-flex; align-items: center; gap: 0.75rem; padding: 1rem 2rem; border-radius: 100px; font-weight: 600; transition: all 0.3s ease; } .hero-image { position: relative; display: flex; justify-content: center; } /* ----------------------------------------------------------------------------- 2.2 Trust Section (index.html) ----------------------------------------------------------------------------- */ .trust-section { background: white; padding: 3rem 0; border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); } .trust-container { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; text-align: center; } .stat-number { font-size: 2.5rem; font-weight: 700; color: var(--primary-color); margin-bottom: 0.5rem; } .stat-label { color: var(--text-muted); font-weight: 500; } /* ----------------------------------------------------------------------------- 2.3 How It Works Section (index.html) ----------------------------------------------------------------------------- */ .how-it-works { padding: 6rem 0; } .section-title { text-align: center; max-width: 700px; margin: 0 auto 4rem; } .section-title h2 { font-size: 2.5rem; font-weight: 700; margin-bottom: 1rem; } .section-title p { color: var(--text-muted); font-size: 1.125rem; } .steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; } .step-card { background: white; padding: 2.5rem; border-radius: var(--radius-xl); border: 1px solid var(--border-subtle); position: relative; transition: all 0.3s ease; } .step-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: rgba(59, 130, 246, 0.3); } .step-number { position: absolute; top: -15px; right: 15px; /* Changed from -15px to 15px to avoid overflow */ width: 40px; height: 40px; background: var(--primary-color); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; box-shadow: var(--shadow-md); } .step-icon { width: 60px; height: 60px; background: rgba(59, 130, 246, 0.1); color: var(--primary-color); border-radius: var(--radius-lg); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 1.5rem; } .step-card h3 { font-size: 1.25rem; margin-bottom: 0.75rem; } .step-card p { color: var(--text-muted); } /* ----------------------------------------------------------------------------- 2.4 About Section (index.html) ----------------------------------------------------------------------------- */ .about-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; } .about-card { background: white; padding: 2rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); transition: all 0.3s ease; text-align: center; } .about-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); } .about-card i { font-size: 2.5rem; color: var(--primary-color); margin-bottom: 1.5rem; } .about-card h3 { margin-bottom: 1rem; font-size: 1.25rem; } .about-card p { color: var(--text-muted); } /* ----------------------------------------------------------------------------- 2.5 Testimonials Section (index.html) ----------------------------------------------------------------------------- */ .testimonials { padding: 6rem 0; background: white; } .testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; } .testimonial-card { background: var(--bg-body); padding: 2rem; border-radius: var(--radius-xl); position: relative; } .quote-icon { color: var(--primary-color); opacity: 0.2; font-size: 2rem; margin-bottom: 1rem; } .testimonial-text { font-style: italic; color: var(--text-main); margin-bottom: 1.5rem; } .testimonial-author { display: flex; align-items: center; gap: 1rem; } .author-avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--primary-color); color: white; display: flex; align-items: center; justify-content: center; font-weight: 700; } .author-name { font-weight: 600; } .author-role { font-size: 0.875rem; color: var(--text-muted); } /* ----------------------------------------------------------------------------- 2.6 Contact Section (index.html) ----------------------------------------------------------------------------- */ .contact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; } .contact-card { background: white; padding: 2rem; border-radius: var(--radius-xl); text-align: center; transition: all 0.3s ease; } .contact-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); } .contact-card i { font-size: 2rem; color: var(--primary-color); margin-bottom: 1rem; } .contact-card h3 { margin-bottom: 0.5rem; font-size: 1.125rem; } .contact-card p { color: var(--text-muted); } .contact-card .small { font-size: 0.875rem; opacity: 0.8; margin-top: 0.25rem; } /* ----------------------------------------------------------------------------- 1.6 Footer (All Pages) ----------------------------------------------------------------------------- */ .footer { background: #0F172A; color: white; padding: 4rem 0 0; } .footer-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-md); display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 4rem; margin-bottom: 3rem; } .footer-about h3 { font-size: 1.5rem; margin-bottom: 1rem; } .footer-about p { color: #94A3B8; line-height: 1.8; } .footer-links h4, .footer-contact h4 { margin-bottom: 1.5rem; color: white; } .footer-links a { display: block; color: #94A3B8; margin-bottom: 0.75rem; } .footer-links a:hover { color: white; } .footer-contact p { color: #94A3B8; margin-bottom: 0.75rem; } .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); padding: 2rem 0; text-align: center; color: #64748B; } /* ============================================================================= 3. CALCULATE PAGE STYLES (calculate.html) ============================================================================= */ /* ----------------------------------------------------------------------------- 3.1 Calculator Container (calculate.html) ----------------------------------------------------------------------------- */ .calculator-section { max-width: 1100px; margin: 50px auto; text-align: center; padding: 0 20px; } .calculator-section h1 { font-size: 2rem; margin-bottom: 0.5rem; } .subtitle { color: #6b7280; margin-bottom: 30px; } /* ----------------------------------------------------------------------------- 3.2 Card & Form Layout (calculate.html) ----------------------------------------------------------------------------- */ .card { background: white; border-radius: 14px; padding: 30px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); text-align: left; } .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; } .box { background: #f9fafb; border-radius: 12px; padding: 20px; text-align: left; } .box h3 { margin-bottom: 15px; font-size: 1.1rem; font-weight: 600; } .box.full { margin-top: 30px; } /* ----------------------------------------------------------------------------- 3.3 Form Inputs (calculate.html) ----------------------------------------------------------------------------- */ .calculator-section label { display: block; font-size: 16px; margin: 10px 0 5px; color: #374151; text-align: left; } .calculator-section input, .calculator-section select { width: 100%; padding: 10px; border-radius: 8px; border: none; background: #eef2f7; font-family: inherit; font-size: 1.2rem; color: #1f2937; } .calculator-section input:focus, .calculator-section select:focus { outline: 2px solid #2563eb; outline-offset: 1px; } .calculator-section input[disabled] { background: #e5e7eb; color: #9ca3af; cursor: not-allowed; } /* ----------------------------------------------------------------------------- 3.4 Checkboxes (calculate.html) ----------------------------------------------------------------------------- */ .checkbox-group { display: grid; grid-template-columns: 1fr 1fr; margin-top: 10px; gap: 8px; } .checkbox-group label { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; } .checkbox-group input[type="checkbox"] { width: 20px; height: 18px; accent-color: #2563eb; } /* ----------------------------------------------------------------------------- 3.5 Lifestyle Grid (calculate.html) ----------------------------------------------------------------------------- */ .grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; } /* ----------------------------------------------------------------------------- 3.6 Analyze Button (calculate.html) ----------------------------------------------------------------------------- */ .analyze-btn { margin-top: 30px; background: #2563eb; color: white; border: none; padding: 15px 30px; border-radius: 30px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .analyze-btn:hover { background: #1d4ed8; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3); } /* ----------------------------------------------------------------------------- 3.7 Result Modal (calculate.html) ----------------------------------------------------------------------------- */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, 0.7); backdrop-filter: blur(4px); display: none; justify-content: center; align-items: center; z-index: 10000; } .modal.visible { display: flex; } .modal-content { background: white; width: 95%; max-width: 500px; padding: 3rem 2.5rem; border-radius: 20px; text-align: center; position: relative; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } .close-modal { position: absolute; top: 1.25rem; right: 1.25rem; width: 28px; height: 28px; border-radius: 50%; background: #f1f5f9; color: #94a3b8; display: flex; align-items: center; justify-content: center; cursor: pointer; border: none; font-size: 1rem; transition: all 0.2s; } .close-modal:hover { background: #e2e8f0; color: #1e293b; } .risk-icon { font-size: 4.5rem; margin-bottom: 1.5rem; } .risk-high { color: #EF4444; } .risk-low { color: #10B981; } .result-header h2 { font-size: 2rem; font-weight: 800; margin-bottom: 0.75rem; } .result-body p { color: #64748b; font-size: 0.9375rem; line-height: 1.6; margin-bottom: 1.5rem; padding: 0 1rem; } .probability-meter { height: 28px; background: #f1f5f9; border-radius: 100px; margin: 1.5rem 0.5rem; position: relative; overflow: hidden; } .prob-fill { height: 100%; background: #10B981; width: 0%; transition: width 1.5s cubic-bezier(0.4, 0, 0.2, 1); border-radius: 100px; } #probValue { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 0.875rem; font-weight: 700; color: #1e293b; } .disclaimer { font-size: 0.75rem; color: #94a3b8; line-height: 1.5; margin-top: 2rem; margin-bottom: 2.5rem; padding-top: 1.25rem; border-top: 1px solid #f1f5f9; } .modal-actions { display: flex; gap: 1rem; justify-content: center; } .view-btn, .btn-cancel { padding: 0.875rem 1.5rem; border-radius: 100px; font-size: 0.9375rem; font-weight: 600; cursor: pointer; transition: all 0.2s; white-space: nowrap; min-width: 160px; } .view-btn { background: #3b82f6; color: white; border: none; box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.2); } .view-btn:hover { background: #2563eb; transform: translateY(-1px); box-shadow: 0 6px 10px -1px rgba(59, 130, 246, 0.3); } .btn-cancel { background: white; color: #1e293b; border: 1px solid #e2e8f0; } .btn-cancel:hover { background: #f8fafc; border-color: #cbd5e1; } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes zoomIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes heartbeat { 0% { transform: scale(1); } 15% { transform: scale(1.15); } 30% { transform: scale(1); } 45% { transform: scale(1.15); } 60% { transform: scale(1); } 100% { transform: scale(1); } } @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-15px); } 100% { transform: translateY(0px); } } @keyframes pulse-soft { 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(59, 130, 246, 0); } 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } } .pulse { animation: pulse-soft 2s infinite; } /* Responsive */ @media (max-width: 768px) { .hero { grid-template-columns: 1fr; padding: 4rem 0; text-align: center; } .hero h1 { font-size: 2.5rem; } .hero-content { order: 2; } .hero-image { order: 1; margin-bottom: 2rem; } .hero-buttons { justify-content: center; } .trust-container { grid-template-columns: repeat(2, 1fr); } .steps-grid, .testimonials-grid, .contact-grid { grid-template-columns: 1fr; } .footer-container { grid-template-columns: 1fr; gap: 2rem; } .form-grid, .lifestyle-grid, .checkbox-group { grid-template-columns: 1fr; } } /* Utilities */ .text-muted { color: var(--text-muted) !important; } /* New Hero Enhancements (Preserved) */ .badge-new { display: inline-flex; align-items: center; gap: 8px; background: rgba(59, 130, 246, 0.1); color: var(--primary-color); padding: 6px 12px; border-radius: 100px; font-size: 0.875rem; font-weight: 600; margin-bottom: var(--space-lg); border: 1px solid rgba(59, 130, 246, 0.2); } .text-gradient { background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero-buttons { display: flex; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; } .primary-btn { background: var(--primary-color); color: white; } .secondary-btn { background: white; color: var(--text-main); border: 1px solid var(--border-subtle); } .secondary-btn:hover { background: var(--bg-subtle); color: var(--primary-color); } .hero-trust { display: flex; gap: 1.5rem; font-size: 0.875rem; color: var(--text-muted); font-weight: 500; } .hero-trust span { display: flex; align-items: center; gap: 6px; } .hero-trust i { color: var(--success); } .floating-heart { animation: float 6s ease-in-out infinite; } .count-up { font-variant-numeric: tabular-nums; } /* ============================================================================= 4. RECOMMENDATION PAGE STYLES (recommendation.html) Note: Additional styles are embedded in recommendation.html