From c8df219f977b3b9ca15ffee72bbe7ebf200ec826 Mon Sep 17 00:00:00 2001 From: Blake Ridgway Date: Sun, 23 Nov 2025 09:16:50 -0600 Subject: [PATCH] more mobile design fixes --- static/css/styles.css | 2047 ++++++++++++++++++++++++----------------- 1 file changed, 1207 insertions(+), 840 deletions(-) diff --git a/static/css/styles.css b/static/css/styles.css index 7bfd262..427461e 100644 --- a/static/css/styles.css +++ b/static/css/styles.css @@ -1,6 +1,7 @@ /* ======================= - Global Reset & Variables + MOBILE-FIRST CSS - Focus on smallest screen first ======================= */ + * { margin: 0; padding: 0; @@ -15,12 +16,8 @@ --text-light: #6b7280; --bg-light: #f8fafc; --white: #ffffff; - --gradient: linear-gradient( - 135deg, - var(--primary) 0%, - var(--secondary) 50%, - var(--accent) 100% - ); + --gradient: linear-gradient(135deg, var(--primary) 0%, + var(--secondary) 50%, var(--accent) 100%); --shadow: 0 10px 30px rgba(30, 78, 156, 0.1); --shadow-hover: 0 20px 40px rgba(30, 78, 156, 0.15); --navbar-height: 56px; @@ -29,12 +26,25 @@ html { scroll-behavior: smooth; + font-size: 14px; +} + +@media (min-width: 480px) { + html { + font-size: 15px; + } +} + +@media (min-width: 768px) { + html { + font-size: 16px; + } } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; - line-height: 1.6; + line-height: 1.5; color: var(--text-dark); overflow-x: hidden; background: var(--white); @@ -43,53 +53,44 @@ body { } /* ======================= - Navigation - Mobile First + NAVBAR - MOBILE FIRST ======================= */ .navbar { position: fixed; top: 0; left: 0; right: 0; - background: rgba(255, 255, 255, 0.95); + background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(20px); z-index: 1000; - padding: 0.75rem 0; - transition: var(--transition); + padding: 0.5rem 0; border-bottom: 1px solid rgba(2, 6, 23, 0.04); min-height: var(--navbar-height); } .navbar.scrolled { box-shadow: var(--shadow); - background: rgba(255, 255, 255, 0.98); } .nav-container { max-width: 1200px; margin: 0 auto; - padding: 0 1rem; + padding: 0 0.75rem; display: flex; justify-content: space-between; align-items: center; + height: var(--navbar-height); } .logo { - font-size: 1.25rem; + font-size: 1.1rem; font-weight: 700; color: var(--text-dark); text-decoration: none; - transition: transform 0.3s ease; - display: inline-flex; + display: flex; align-items: center; - gap: 0.4rem; -} - -.logo:hover { - transform: scale(1.05); -} - -.logo-accent { - color: var(--accent); + gap: 0.3rem; + flex-shrink: 0; } .logo-img { @@ -98,49 +99,31 @@ body { width: auto; } -.nav-links { - display: none; - gap: 2rem; - list-style: none; +.logo-accent { + color: var(--accent); } -@media (min-width: 768px) { - .nav-links { - display: flex; - } +/* Mobile nav - HIDDEN by default */ +.nav-links { + display: none; + list-style: none; } .nav-links a { text-decoration: none; color: var(--text-dark); font-weight: 500; - transition: color 0.3s ease; - position: relative; font-size: 0.95rem; + transition: color 0.3s ease; } -.nav-links a::after { - content: ''; - position: absolute; - bottom: -5px; - left: 0; - width: 0; - height: 2px; - background: var(--gradient); - transition: width 0.3s ease; -} - -.nav-links a:hover::after, -.nav-links a.active::after { - width: 100%; -} - +/* HAMBURGER MENU - VISIBLE on mobile */ .nav-toggle { display: flex; flex-direction: column; justify-content: center; align-items: center; - gap: 5px; + gap: 4px; width: 40px; height: 40px; border: 1px solid rgba(2, 6, 23, 0.08); @@ -150,15 +133,8 @@ body { transition: var(--transition); } -@media (min-width: 768px) { - .nav-toggle { - display: none; - } -} - .nav-toggle:hover { box-shadow: var(--shadow); - transform: translateY(-1px); } .nav-toggle .bar { @@ -170,7 +146,7 @@ body { } .nav-toggle.active .bar:nth-child(1) { - transform: translateY(7px) rotate(45deg); + transform: translateY(6px) rotate(45deg); } .nav-toggle.active .bar:nth-child(2) { @@ -178,52 +154,76 @@ body { } .nav-toggle.active .bar:nth-child(3) { - transform: translateY(-7px) rotate(-45deg); + transform: translateY(-6px) rotate(-45deg); } -/* Mobile Menu */ +/* Mobile menu opened */ .nav-links.open { display: flex; - position: absolute; + position: fixed; top: var(--navbar-height); - left: 1rem; - right: 1rem; + left: 0; + right: 0; flex-direction: column; - gap: 0.5rem; + gap: 0; background: var(--white); - border: 1px solid rgba(2, 6, 23, 0.08); - border-radius: 12px; + border-bottom: 1px solid rgba(2, 6, 23, 0.08); box-shadow: var(--shadow); - padding: 0.75rem; + padding: 0.5rem; z-index: 999; } .nav-links.open a { display: block; padding: 0.75rem 1rem; - border-radius: 8px; + border-radius: 6px; + width: 100%; } .nav-links.open a:hover { background: var(--bg-light); } -.nav-links.open a::after { - display: none; +/* Desktop nav - VISIBLE on 768px+ */ +@media (min-width: 768px) { + .nav-toggle { + display: none; + } + + .nav-links { + display: flex; + gap: 2rem; + } + + .nav-links a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 2px; + background: var(--gradient); + transition: width 0.3s ease; + } + + .nav-links a:hover::after, + .nav-links a.active::after { + width: 100%; + } } /* ======================= - Hero Section - Mobile First + HERO SECTION - MOBILE FIRST ======================= */ .hero { min-height: 100vh; background: var(--gradient); display: flex; align-items: center; - position: relative; - overflow: hidden; padding-top: calc(var(--navbar-height) + 1rem); padding-bottom: 2rem; + position: relative; + overflow: hidden; } .hero::before { @@ -249,32 +249,33 @@ body { @media (min-width: 768px) { .hero-container { grid-template-columns: 1fr 1fr; - gap: 4rem; + gap: 3rem; + padding: 0 2rem; } } .hero-content h1 { - font-size: clamp(1.75rem, 5vw, 3.5rem); + font-size: clamp(1.75rem, 5vw, 3rem); font-weight: 800; color: var(--white); margin-bottom: 1rem; - line-height: 1.2; - text-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); + line-height: 1.1; + text-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .hero-content .subtitle { - font-size: clamp(0.95rem, 3vw, 1.25rem); + font-size: clamp(0.9rem, 3vw, 1.1rem); color: rgba(255, 255, 255, 0.9); - margin-bottom: 1.5rem; + margin-bottom: 1.25rem; font-weight: 300; - line-height: 1.6; + line-height: 1.5; } .cta-section { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(20px); - padding: 1.5rem; - border-radius: 16px; + padding: 1.25rem; + border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); } @@ -282,51 +283,51 @@ body { @media (min-width: 768px) { .cta-section { padding: 2rem; - border-radius: 20px; + border-radius: 16px; } } .cta-section h3 { color: var(--white); - font-size: clamp(1.1rem, 4vw, 1.5rem); + font-size: clamp(1rem, 3vw, 1.4rem); margin-bottom: 0.5rem; font-weight: 600; } .cta-section > p { color: rgba(255, 255, 255, 0.8); - margin-bottom: 1.25rem; + margin-bottom: 1rem; font-size: 0.9rem; + line-height: 1.5; } /* Beta Badge */ .beta-badge { display: inline-flex; align-items: center; - gap: 8px; + gap: 6px; background: rgba(255, 255, 255, 0.15); border: 1px solid rgba(255, 255, 255, 0.3); - padding: 8px 14px; + padding: 6px 12px; border-radius: 50px; - margin-bottom: 1rem; - font-size: 11px; + margin-bottom: 0.75rem; + font-size: 0.75rem; font-weight: 600; color: rgba(255, 255, 255, 0.95); text-transform: uppercase; - letter-spacing: 0.5px; - backdrop-filter: blur(10px); + letter-spacing: 0.4px; } -@media (min-width: 768px) { +@media (min-width: 480px) { .beta-badge { - padding: 10px 16px; - font-size: 13px; - margin-bottom: 1.5rem; + padding: 8px 14px; + font-size: 0.8rem; + margin-bottom: 1rem; } } .badge-icon { - font-size: 14px; + font-size: 12px; animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @@ -339,7 +340,7 @@ body { } } -/* Email Form */ +/* Email Form - STACK on mobile */ .email-form { display: flex; flex-direction: column; @@ -347,16 +348,16 @@ body { margin-bottom: 1rem; } -@media (min-width: 640px) { +@media (min-width: 480px) { .email-form { flex-direction: row; - gap: 1rem; + gap: 0.75rem; } } .email-input { flex: 1; - padding: 0.8rem 1rem; + padding: 0.75rem 1rem; border: none; border-radius: 50px; background: rgba(255, 255, 255, 0.95); @@ -365,10 +366,13 @@ body { transition: var(--transition); color: var(--text-dark); min-width: 0; + width: 100%; } -.email-input::placeholder { - color: rgba(26, 26, 26, 0.5); +@media (min-width: 480px) { + .email-input { + width: auto; + } } .email-input:focus { @@ -377,7 +381,7 @@ body { } .notify-btn { - padding: 0.8rem 1.5rem; + padding: 0.75rem 1.5rem; background: var(--white); color: var(--primary); border: none; @@ -386,96 +390,98 @@ body { cursor: pointer; transition: var(--transition); white-space: nowrap; - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); font-size: 0.9rem; width: 100%; } -@media (min-width: 640px) { +@media (min-width: 480px) { .notify-btn { width: auto; - padding: 1rem 2rem; - font-size: 1rem; + padding: 0.85rem 2rem; + font-size: 0.95rem; } } -.notify-btn:hover, -.notify-btn:focus { - transform: translateY(-2px); - box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15); -} - .notify-btn:active { - transform: translateY(-1px); + transform: scale(0.98); } /* Beta Notice */ .beta-notice { background: linear-gradient(135deg, rgba(255, 193, 7, 0.1), rgba(255, 152, 0, 0.1)); - border-left: 4px solid rgba(255, 193, 7, 0.6); + border-left: 3px solid rgba(255, 193, 7, 0.6); border-radius: 8px; - padding: 1rem; - margin-top: 1rem; - font-size: 12px; + padding: 0.75rem; + margin-top: 0.75rem; + font-size: 0.8rem; color: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); } -@media (min-width: 768px) { +@media (min-width: 480px) { .beta-notice { - font-size: 14px; - padding: 1rem 1.25rem; - border-radius: 12px; + padding: 1rem; + font-size: 0.85rem; + border-radius: 10px; } } .beta-notice p { margin: 0; - line-height: 1.5; + line-height: 1.4; } -/* Phone Mockup */ +/* Phone Mockup - ADJUST SIZE for mobile */ .hero-visual { position: relative; - height: 400px; + height: 320px; display: flex; align-items: center; justify-content: center; + order: -1; +} + +@media (min-width: 480px) { + .hero-visual { + height: 380px; + } } @media (min-width: 768px) { .hero-visual { height: 500px; + order: 0; } } .phone-mockup { - width: 240px; - height: 480px; + width: 220px; + height: 440px; background: linear-gradient(145deg, #2a2a2a, #1a1a1a); - border-radius: 36px; - padding: 14px; - box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3); + border-radius: 32px; + padding: 12px; + box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4); position: relative; transform: rotate(-5deg); animation: float 6s ease-in-out infinite; } +@media (min-width: 480px) { + .phone-mockup { + width: 240px; + height: 480px; + padding: 14px; + border-radius: 36px; + } +} + @media (min-width: 768px) { .phone-mockup { width: 280px; height: 560px; - padding: 18px; - border-radius: 40px; - } -} - -@media (min-width: 1024px) { - .phone-mockup { - width: 300px; - height: 600px; - padding: 20px; + padding: 16px; } } @@ -484,7 +490,7 @@ body { transform: rotate(-5deg) translateY(0); } 50% { - transform: rotate(-5deg) translateY(-15px); + transform: rotate(-5deg) translateY(-12px); } } @@ -492,7 +498,7 @@ body { width: 100%; height: 100%; background: var(--gradient); - border-radius: 24px; + border-radius: 20px; display: flex; align-items: center; justify-content: center; @@ -507,122 +513,106 @@ body { align-items: center; justify-content: center; height: 100%; - padding: 1.5rem; + padding: 1rem; width: 100%; } .app-brand { display: inline-flex; align-items: center; - gap: 0.35rem; - margin-bottom: 1rem; + gap: 0.3rem; + margin-bottom: 0.8rem; } .app-brand-icon { - width: 28px; - height: 28px; - border-radius: 6px; + width: 24px; + height: 24px; + border-radius: 4px; background: rgba(255, 255, 255, 0.2); } .app-logo { - font-size: 1.5rem; + font-size: 1.3rem; font-weight: 700; - margin: 0; - letter-spacing: -0.5px; + letter-spacing: -0.4px; color: var(--white); } .screen .stats-grid { display: grid; grid-template-columns: 1fr 1fr; - gap: 0.6rem; - margin-top: 1.2rem; + gap: 0.5rem; + margin-top: 1rem; width: 100%; } .screen .stat-card { background: rgba(0, 0, 0, 0.3) !important; - padding: 0.8rem 0.6rem !important; - border-radius: 12px !important; + padding: 0.7rem 0.5rem !important; + border-radius: 10px !important; text-align: center !important; backdrop-filter: blur(15px) !important; border: 1px solid rgba(255, 255, 255, 0.15) !important; } .screen .stat-number { - font-size: 1.1rem !important; + font-size: 1rem !important; font-weight: 800 !important; color: var(--white) !important; - margin-bottom: 0.3rem !important; + margin-bottom: 0.2rem !important; display: block !important; } .screen .stat-label { - font-size: 0.6rem !important; + font-size: 0.55rem !important; font-weight: 600 !important; text-transform: uppercase !important; - letter-spacing: 0.6px !important; + letter-spacing: 0.5px !important; color: rgba(255, 255, 255, 0.9) !important; display: block !important; } -@media (min-width: 768px) { - .screen .stat-number { - font-size: 1.3rem !important; - } - - .screen .stat-label { - font-size: 0.7rem !important; - } - - .screen .stat-card { - padding: 1rem 0.8rem !important; - } -} - /* ======================= - Features Section + FEATURES - MOBILE FIRST ======================= */ .features { - padding: 3rem 0; + padding: 2.5rem 0; background: var(--white); } @media (min-width: 768px) { .features { - padding: 6rem 0; + padding: 5rem 0; } } .section-header { text-align: center; - max-width: 700px; - margin: 0 auto 2.5rem; + max-width: 600px; + margin: 0 auto 2rem; padding: 0 1rem; } @media (min-width: 768px) { .section-header { - margin-bottom: 4rem; + margin-bottom: 3.5rem; } } .section-header h2 { - font-size: clamp(1.5rem, 4vw, 2.5rem); + font-size: clamp(1.3rem, 4vw, 2.2rem); font-weight: 700; - margin-bottom: 1rem; + margin-bottom: 0.75rem; background: var(--gradient); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; - color: transparent; } .section-header p { - font-size: clamp(0.9rem, 2vw, 1rem); + font-size: clamp(0.85rem, 2vw, 1rem); color: var(--text-light); - line-height: 1.6; + line-height: 1.5; } .features-container { @@ -631,30 +621,35 @@ body { padding: 0 1rem; } +@media (min-width: 768px) { + .features-container { + padding: 0 2rem; + } +} + .features-grid { display: grid; grid-template-columns: 1fr; - gap: 1.5rem; + gap: 1.25rem; } @media (min-width: 640px) { .features-grid { grid-template-columns: repeat(2, 1fr); - gap: 1.5rem; } } @media (min-width: 1024px) { .features-grid { grid-template-columns: repeat(3, 1fr); - gap: 2rem; + gap: 1.75rem; } } .feature-card { background: var(--white); - padding: 1.5rem; - border-radius: 16px; + padding: 1.25rem; + border-radius: 12px; box-shadow: var(--shadow); transition: var(--transition); border: 1px solid rgba(30, 78, 156, 0.05); @@ -664,8 +659,8 @@ body { @media (min-width: 768px) { .feature-card { - padding: 2.5rem; - border-radius: 20px; + padding: 2rem; + border-radius: 16px; } } @@ -675,49 +670,47 @@ body { top: 0; left: 0; width: 100%; - height: 4px; + height: 3px; background: var(--gradient); } .feature-card:hover { - transform: translateY(-8px); + transform: translateY(-6px); box-shadow: var(--shadow-hover); - border-color: rgba(30, 78, 156, 0.15); } .feature-icon { - width: 50px; - height: 50px; + width: 44px; + height: 44px; background: var(--gradient); - border-radius: 12px; + border-radius: 10px; display: flex; align-items: center; justify-content: center; - margin-bottom: 1rem; + margin-bottom: 0.75rem; color: var(--white); - font-size: 1.25rem; + font-size: 1.1rem; } @media (min-width: 768px) { .feature-icon { - width: 60px; - height: 60px; - border-radius: 15px; - font-size: 1.5rem; + width: 56px; + height: 56px; + border-radius: 12px; + font-size: 1.4rem; } } .feature-card h3 { - font-size: 1.1rem; + font-size: 1rem; font-weight: 600; - margin-bottom: 0.75rem; + margin-bottom: 0.6rem; color: var(--text-dark); } @media (min-width: 768px) { .feature-card h3 { - font-size: 1.25rem; - margin-bottom: 1rem; + font-size: 1.2rem; } } @@ -726,11 +719,19 @@ body { } .feature-list li { - margin-bottom: 0.5rem; + margin-bottom: 0.4rem; position: relative; - padding-left: 1.25rem; + padding-left: 1.1rem; color: var(--text-light); - font-size: 0.9rem; + font-size: 0.85rem; + line-height: 1.4; +} + +@media (min-width: 768px) { + .feature-list li { + font-size: 0.9rem; + margin-bottom: 0.5rem; + } } .feature-list li::before { @@ -746,18 +747,201 @@ body { } /* ======================= - Page Header + STATUS SECTION - KEY MOBILE FIX + ======================= */ +.development-status { + padding: 2rem 1rem; + background: linear-gradient(135deg, #f8fafc 0%, #f0f4f9 100%); + border-top: 1px solid rgba(51, 124, 242, 0.1); +} + +@media (min-width: 768px) { + .development-status { + padding: 4rem 2rem; + } +} + +.status-container { + max-width: 1000px; + margin: 0 auto; +} + +.development-status h2 { + font-size: clamp(1.4rem, 4vw, 1.9rem); + color: var(--text-dark); + margin-bottom: 1rem; + text-align: center; + font-weight: 700; +} + +.status-intro { + font-size: 0.85rem; + color: var(--text-light); + text-align: center; + margin-bottom: 1.5rem; + line-height: 1.5; + max-width: 600px; + margin-left: auto; + margin-right: auto; +} + +@media (min-width: 768px) { + .status-intro { + font-size: 0.95rem; + margin-bottom: 2.5rem; + } +} + +.status-grid { + display: grid; + grid-template-columns: 1fr; + gap: 0.75rem; + margin-bottom: 2rem; +} + +@media (min-width: 480px) { + .status-grid { + grid-template-columns: repeat(2, 1fr); + gap: 1rem; + } +} + +@media (min-width: 1024px) { + .status-grid { + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; + } +} + +.status-item { + background: var(--white); + border-radius: 10px; + padding: 1rem; + border: 1px solid rgba(51, 124, 242, 0.1); + position: relative; + transition: var(--transition); +} + +@media (min-width: 768px) { + .status-item { + padding: 1.5rem; + border-radius: 12px; + } +} + +.status-item:hover { + transform: translateY(-3px); + box-shadow: var(--shadow-hover); + border-color: rgba(51, 124, 242, 0.2); +} + +.status-badge { + display: inline-block; + font-size: 0.65rem; + font-weight: 700; + padding: 4px 8px; + border-radius: 4px; + margin-bottom: 0.6rem; + letter-spacing: 0.3px; + text-transform: uppercase; +} + +.status-item.ready .status-badge { + background: rgba(76, 175, 80, 0.15); + color: #2e7d32; +} + +.status-item.in-progress .status-badge { + background: rgba(255, 193, 7, 0.15); + color: #f57f17; +} + +.status-item.planned .status-badge { + background: rgba(51, 124, 242, 0.15); + color: var(--primary); +} + +.status-item h4 { + color: var(--text-dark); + font-size: 0.9rem; + margin: 0 0 0.4rem 0; + font-weight: 600; +} + +@media (min-width: 768px) { + .status-item h4 { + font-size: 1rem; + } +} + +.status-item p { + color: var(--text-light); + font-size: 0.8rem; + margin: 0; + line-height: 1.4; +} + +@media (min-width: 768px) { + .status-item p { + font-size: 0.85rem; + } +} + +.feedback-cta { + background: var(--white); + border: 2px solid rgba(51, 124, 242, 0.2); + border-radius: 10px; + padding: 1.5rem; + text-align: center; + transition: var(--transition); + margin-top: 1rem; +} + +@media (min-width: 768px) { + .feedback-cta { + padding: 2rem; + margin-top: 2rem; + } +} + +.feedback-cta:hover { + border-color: rgba(51, 124, 242, 0.4); + box-shadow: var(--shadow); +} + +.feedback-cta h3 { + color: var(--text-dark); + font-size: clamp(1rem, 3vw, 1.3rem); + margin: 0 0 0.6rem 0; + font-weight: 700; +} + +.feedback-cta p { + color: var(--text-light); + font-size: 0.85rem; + margin: 0 0 1rem 0; + line-height: 1.5; +} + +@media (min-width: 768px) { + .feedback-cta p { + font-size: 0.9rem; + } +} + +/* ======================= + PAGE HEADER ======================= */ .page-header { background: linear-gradient(180deg, rgba(30, 78, 156, 0.06), rgba(0, 212, 255, 0.06)); - padding: 5rem 0 2rem; + padding: 4rem 0 2rem; border-bottom: 1px solid rgba(30, 78, 156, 0.08); } @media (min-width: 768px) { .page-header { - padding: 8rem 0 3rem; + padding: 6rem 0 3rem; } } @@ -769,47 +953,48 @@ body { } .page-header .header-icon { - width: 56px; - height: 56px; - margin: 0 auto 1rem; - border-radius: 12px; + width: 48px; + height: 48px; + margin: 0 auto 0.75rem; + border-radius: 10px; background: var(--gradient); color: var(--white); display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow); - font-size: 1.25rem; + font-size: 1.1rem; } @media (min-width: 768px) { .page-header .header-icon { - width: 64px; - height: 64px; - border-radius: 16px; - font-size: 1.5rem; + width: 60px; + height: 60px; + border-radius: 14px; + font-size: 1.4rem; + margin-bottom: 1rem; } } .page-header h1 { - font-size: clamp(1.5rem, 4vw, 2rem); + font-size: clamp(1.4rem, 4vw, 1.9rem); font-weight: 700; color: var(--text-dark); - margin-bottom: 0.5rem; + margin-bottom: 0.4rem; } .page-header p { color: var(--text-light); - font-size: clamp(0.9rem, 2vw, 1rem); + font-size: clamp(0.85rem, 2vw, 1rem); } /* ======================= - Main Content + MAIN CONTENT ======================= */ .main-content { max-width: 1100px; margin: 0 auto; - padding: 1.5rem 1rem 2rem; + padding: 1.25rem 1rem 2rem; } @media (min-width: 768px) { @@ -821,38 +1006,78 @@ body { .newsletters-grid { display: grid; grid-template-columns: 1fr; - gap: 1.25rem; + gap: 1rem; } @media (min-width: 640px) { .newsletters-grid { grid-template-columns: repeat(2, 1fr); + gap: 1.25rem; } } @media (min-width: 1024px) { .newsletters-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 1.5rem; } } +/* ======================= + FOOTER + ======================= */ +.footer { + background: var(--text-dark); + color: var(--white); + text-align: center; + padding: 1.25rem 1rem; + font-size: 0.85rem; +} + +@media (min-width: 768px) { + .footer { + padding: 2rem; + } +} + +/* ======================= + RESPONSIVE UTILITIES + ======================= */ +@media (prefers-reduced-motion: reduce) { + * { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } +} + +main, .section, .page-header, #features { + scroll-margin-top: calc(var(--navbar-height) + 10px); +} + +/* ======================= + NEWSLETTER CARD - MOBILE FIRST + ======================= */ .newsletter-card { background: var(--white); border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 12px; - padding: 1.25rem; + border-radius: 10px; + padding: 1rem; box-shadow: var(--shadow); transition: var(--transition); + display: flex; + flex-direction: column; } @media (min-width: 768px) { .newsletter-card { - border-radius: 16px; + border-radius: 12px; + padding: 1.25rem; } } .newsletter-card:hover { - transform: translateY(-4px); + transform: translateY(-3px); box-shadow: var(--shadow-hover); border-color: rgba(30, 78, 156, 0.15); } @@ -867,22 +1092,22 @@ body { .newsletter-icon { width: 40px; height: 40px; - border-radius: 10px; + border-radius: 8px; background: var(--gradient); color: var(--white); display: flex; align-items: center; justify-content: center; flex-shrink: 0; - font-size: 1rem; + font-size: 0.95rem; } @media (min-width: 768px) { .newsletter-icon { width: 44px; height: 44px; - border-radius: 12px; - font-size: 1.1rem; + border-radius: 10px; + font-size: 1rem; } } @@ -890,11 +1115,19 @@ body { font-size: 0.95rem; margin: 0; font-weight: 600; + color: var(--text-dark); + line-height: 1.3; +} + +@media (min-width: 480px) { + .newsletter-info h2 { + font-size: 1rem; + } } @media (min-width: 768px) { .newsletter-info h2 { - font-size: 1.1rem; + font-size: 1.05rem; } } @@ -913,50 +1146,450 @@ body { align-items: center; gap: 0.4rem; color: var(--text-light); - font-size: 0.8rem; - margin-bottom: 0.5rem; + font-size: 0.75rem; + margin-bottom: 0.6rem; +} + +@media (min-width: 768px) { + .newsletter-date { + font-size: 0.8rem; + } } .newsletter-excerpt { color: var(--text-dark); opacity: 0.85; margin-bottom: 0.75rem; - font-size: 0.9rem; - line-height: 1.5; + font-size: 0.85rem; + line-height: 1.4; + flex-grow: 1; +} + +@media (min-width: 768px) { + .newsletter-excerpt { + font-size: 0.9rem; + line-height: 1.5; + } } .read-more-btn { display: inline-flex; align-items: center; - gap: 0.4rem; + justify-content: center; + gap: 0.35rem; color: var(--white); background: var(--gradient); - padding: 0.5rem 0.8rem; + padding: 0.5rem 1rem; border-radius: 50px; text-decoration: none; font-weight: 600; transition: var(--transition); - font-size: 0.85rem; + font-size: 0.8rem; + width: 100%; + border: none; + cursor: pointer; } -.read-more-btn:hover { +@media (min-width: 480px) { + .read-more-btn { + width: auto; + padding: 0.55rem 1.1rem; + font-size: 0.85rem; + } +} + +@media (min-width: 768px) { + .read-more-btn { + padding: 0.6rem 1.3rem; + font-size: 0.9rem; + } +} + +.read-more-btn:hover, +.read-more-btn:focus { transform: translateY(-2px); box-shadow: var(--shadow); } /* ======================= - Footer + ARTICLE LAYOUT - MOBILE FIRST ======================= */ -.footer { - background: var(--text-dark); - color: var(--white); - text-align: center; - padding: 1.5rem 1rem; +.article-wrap { + max-width: 1200px; + margin: 3rem auto 2rem; + padding: 0 1rem; + display: grid; + grid-template-columns: 1fr; + gap: 2rem; +} + +@media (min-width: 900px) { + .article-wrap { + margin: 5rem auto 3rem; + grid-template-columns: 220px 1fr; + gap: 2.5rem; + } +} + +.article-aside { + position: static; +} + +@media (min-width: 900px) { + .article-aside { + position: sticky; + top: 80px; + align-self: start; + } +} + +.back-navigation { + max-width: 1100px; + margin: 0 auto 2rem; + padding: 0 1rem; +} + +@media (min-width: 768px) { + .back-navigation { + margin-bottom: 3rem; + } +} + +.back-link { + color: var(--secondary); + text-decoration: none; + font-weight: 600; + display: inline-flex; + align-items: center; + gap: 0.35rem; + transition: gap 0.3s ease; font-size: 0.9rem; } +.back-link:hover { + gap: 0.55rem; +} + +.article-meta { + background: var(--white); + border: 1px solid rgba(30, 78, 156, 0.08); + border-radius: 10px; + padding: 0.75rem; + box-shadow: var(--shadow); + margin-bottom: 1rem; +} + +@media (min-width: 768px) { + .article-meta { + padding: 1rem; + border-radius: 12px; + } +} + +.article-title { + font-size: 0.85rem; + margin: 0 0 0.5rem 0; + font-weight: 600; + color: var(--text-dark); +} + +@media (min-width: 768px) { + .article-title { + font-size: 0.9rem; + } +} + +.meta-row { + display: flex; + align-items: center; + gap: 0.4rem; + color: var(--text-light); + font-size: 0.75rem; + margin: 0.2rem 0; +} + +@media (min-width: 768px) { + .meta-row { + font-size: 0.8rem; + } +} + +.article-tags { + display: flex; + flex-wrap: wrap; + gap: 0.3rem; + margin-top: 0.5rem; +} + +.article-tags .tag { + font-size: 0.7rem; + padding: 0.25rem 0.5rem; + background: rgba(51, 124, 242, 0.08); + color: var(--secondary); + border: 1px solid rgba(51, 124, 242, 0.2); + border-radius: 999px; +} + +/* Table of Contents */ +.toc { + margin-top: 1rem; + background: var(--white); + border: 1px solid rgba(30, 78, 156, 0.08); + border-radius: 10px; + padding: 0.75rem; + box-shadow: var(--shadow); +} + +@media (min-width: 768px) { + .toc { + padding: 0.9rem; + border-radius: 12px; + } +} + +.toc-title { + font-weight: 700; + margin-bottom: 0.5rem; + color: var(--text-dark); + font-size: 0.8rem; +} + +@media (min-width: 768px) { + .toc-title { + font-size: 0.85rem; + margin-bottom: 0.6rem; + } +} + +#toc-list { + list-style: none; + padding-left: 0; +} + +#toc-list li { + margin: 0.25rem 0; +} + +#toc-list a { + text-decoration: none; + color: var(--text-dark); + font-size: 0.75rem; + transition: color 0.3s ease; + line-height: 1.3; +} + +@media (min-width: 768px) { + #toc-list a { + font-size: 0.8rem; + } +} + +#toc-list a:hover { + color: var(--secondary); +} + +.toc-h3 { + margin-left: 0.5rem; + opacity: 0.8; +} + +/* Article Main Content */ +.article-main { + min-width: 0; +} + +.article-hero { + display: flex; + align-items: flex-start; + gap: 0.6rem; + margin-bottom: 1rem; +} + +.article-hero .newsletter-icon { + width: 36px; + height: 36px; + border-radius: 8px; + background: var(--gradient); + color: var(--white); + display: flex; + align-items: center; + justify-content: center; + font-size: 0.9rem; + flex-shrink: 0; + margin-top: 0.2rem; +} + +@media (min-width: 768px) { + .article-hero .newsletter-icon { + width: 40px; + height: 40px; + border-radius: 10px; + font-size: 1rem; + } +} + +.article-main .article-hero h1 { + font-size: clamp(1.2rem, 4vw, 1.7rem); + font-weight: 700; + margin: 0; + line-height: 1.2; +} + +.newsletter-meta { + display: flex; + flex-wrap: wrap; + gap: 0.6rem 1rem; + margin-top: 0.6rem; + color: var(--text-light); + font-size: 0.8rem; +} + +@media (min-width: 768px) { + .newsletter-meta { + font-size: 0.85rem; + gap: 0.75rem 1.2rem; + } +} + +.newsletter-meta .meta-item { + display: inline-flex; + align-items: center; + gap: 0.3rem; +} + +.newsletter-content { + margin-top: 1.5rem; + background: var(--white); + border: 1px solid rgba(30, 78, 156, 0.08); + border-radius: 10px; + padding: 1.25rem; + box-shadow: var(--shadow); +} + +@media (min-width: 768px) { + .newsletter-content { + margin-top: 2rem; + border-radius: 12px; + padding: 1.5rem; + } +} + +.newsletter-content h2 { + font-size: clamp(1.1rem, 3vw, 1.4rem); + margin-top: 1rem; + margin-bottom: 0.5rem; + font-weight: 700; + color: var(--text-dark); +} + +.newsletter-content h3 { + font-size: clamp(1rem, 3vw, 1.2rem); + margin-top: 0.75rem; + margin-bottom: 0.4rem; + font-weight: 600; + color: var(--text-dark); +} + +.newsletter-content p, +.newsletter-content li { + color: var(--text-dark); + font-size: 0.9rem; + line-height: 1.6; +} + +@media (min-width: 768px) { + .newsletter-content p, + .newsletter-content li { + font-size: 0.95rem; + } +} + +.newsletter-content ul, +.newsletter-content ol { + padding-left: 1.25rem; + margin: 0.75rem 0; +} + +.newsletter-content li { + margin-bottom: 0.5rem; +} + +.newsletter-content blockquote { + margin: 1rem 0; + padding: 0.75rem 1rem; + background: rgba(0, 212, 255, 0.08); + border-left: 3px solid var(--accent); + border-radius: 6px; + color: var(--text-dark); + font-size: 0.9rem; + font-style: italic; +} + +.newsletter-actions { + display: flex; + flex-direction: column; + gap: 0.5rem; + margin-top: 1.5rem; +} + +@media (min-width: 640px) { + .newsletter-actions { + flex-direction: row; + flex-wrap: wrap; + gap: 0.75rem; + } +} + +.action-btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 0.4rem; + border-radius: 8px; + padding: 0.6rem 1rem; + cursor: pointer; + border: none; + text-decoration: none; + font-weight: 600; + transition: var(--transition); + font-size: 0.85rem; + width: 100%; +} + +@media (min-width: 480px) { + .action-btn { + width: auto; + padding: 0.65rem 1.2rem; + font-size: 0.9rem; + } +} + +@media (min-width: 768px) { + .action-btn { + padding: 0.7rem 1.4rem; + font-size: 0.95rem; + } +} + +.action-btn.primary { + background: var(--gradient); + color: var(--white); +} + +.action-btn.secondary { + background: var(--bg-light); + color: var(--text-dark); + border: 1px solid rgba(30, 78, 156, 0.1); +} + +.action-btn:hover, +.action-btn:focus { + transform: translateY(-2px); + box-shadow: var(--shadow); +} + /* ======================= - Contact & About Page + CONTACT & ABOUT - MOBILE FIRST ======================= */ .contact-about-page { min-height: 100vh; @@ -966,32 +1599,34 @@ body { .hero-section { background: var(--gradient); - padding: 3rem 1rem; + padding: 2.5rem 1rem; text-align: center; color: var(--white); } @media (min-width: 768px) { .hero-section { - padding: 6rem 2rem; + padding: 5rem 2rem; } } .hero-section h1 { - font-size: clamp(1.5rem, 4vw, 2.5rem); + font-size: clamp(1.4rem, 4vw, 2.2rem); font-weight: 700; - margin-bottom: 0.75rem; + margin-bottom: 0.5rem; + line-height: 1.2; } .hero-section p { - font-size: clamp(0.9rem, 2vw, 1rem); + font-size: clamp(0.9rem, 2vw, 1.05rem); opacity: 0.95; + line-height: 1.5; } .about-content { max-width: 1100px; margin: 0 auto; - padding: 2rem 1rem; + padding: 1.5rem 1rem; display: grid; grid-template-columns: 1fr; gap: 2rem; @@ -1001,35 +1636,43 @@ body { .about-content { grid-template-columns: 1fr 1fr; gap: 3rem; - padding: 4rem 2rem; + padding: 3rem 2rem; align-items: start; } } .about-text h2 { - font-size: clamp(1.3rem, 4vw, 2rem); + font-size: clamp(1.2rem, 4vw, 1.9rem); font-weight: 700; color: var(--text-dark); margin-bottom: 1rem; } .about-text p { - font-size: 0.95rem; + font-size: 0.9rem; color: var(--text-light); - line-height: 1.7; + line-height: 1.6; margin-bottom: 1rem; } +@media (min-width: 768px) { + .about-text p { + font-size: 0.95rem; + line-height: 1.7; + } +} + .about-text ul { list-style: none; margin-bottom: 1.5rem; } .about-text li { - padding: 0.5rem 0 0.5rem 1.75rem; + padding: 0.5rem 0 0.5rem 1.6rem; position: relative; color: var(--text-dark); - font-size: 0.95rem; + font-size: 0.9rem; + line-height: 1.5; } .about-text li::before { @@ -1041,38 +1684,80 @@ body { font-size: 1rem; } +.about-image { + display: flex; + align-items: center; + justify-content: center; + min-height: 250px; +} + +.about-image div { + width: 100%; + height: 250px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + font-size: 4rem; + background: var(--gradient); + color: var(--white); +} + +@media (min-width: 768px) { + .about-image div { + height: 350px; + border-radius: 14px; + } +} + +/* ======================= + CONTACT FORM - MOBILE FIRST + ======================= */ .contact-form { background: var(--white); border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 12px; - padding: 1.5rem; + border-radius: 10px; + padding: 1.25rem; box-shadow: var(--shadow); } @media (min-width: 768px) { .contact-form { - border-radius: 16px; - padding: 2rem; + border-radius: 12px; + padding: 1.75rem; } } .contact-form h2 { - font-size: 1.25rem; + font-size: 1.1rem; font-weight: 700; color: var(--text-dark); - margin-bottom: 1.25rem; + margin-bottom: 1rem; +} + +@media (min-width: 768px) { + .contact-form h2 { + font-size: 1.3rem; + margin-bottom: 1.25rem; + } } .form-group { - margin-bottom: 1.25rem; + margin-bottom: 1rem; +} + +@media (min-width: 768px) { + .form-group { + margin-bottom: 1.25rem; + } } .form-group label { display: block; font-weight: 600; color: var(--text-dark); - margin-bottom: 0.4rem; - font-size: 0.95rem; + margin-bottom: 0.35rem; + font-size: 0.9rem; } .form-group label .required { @@ -1083,7 +1768,7 @@ body { .form-group textarea, .form-group select { width: 100%; - padding: 0.7rem 0.85rem; + padding: 0.65rem 0.85rem; border: 1px solid rgba(30, 78, 156, 0.1); border-radius: 8px; font-family: inherit; @@ -1106,28 +1791,56 @@ body { min-height: 100px; } +@media (min-width: 768px) { + .form-group textarea { + min-height: 120px; + } +} + .form-group small { display: block; color: var(--text-light); margin-top: 0.25rem; - font-size: 0.85rem; + font-size: 0.8rem; +} + +.form-group input[type='checkbox'], +.form-group input[type='radio'] { + width: auto; + margin-right: 0.5rem; } .newsletter-opt-in { - margin: 1.5rem 0; - padding: 1.25rem; + margin: 1rem 0; + padding: 1rem; background: linear-gradient(135deg, rgba(51, 124, 242, 0.08), rgba(0, 212, 255, 0.08)); - border-radius: 10px; + border-radius: 8px; border: 1px solid rgba(51, 124, 242, 0.15); } +@media (min-width: 768px) { + .newsletter-opt-in { + margin: 1.5rem 0; + padding: 1.25rem; + border-radius: 10px; + } +} + .checkbox-label { display: flex; - align-items: center; - gap: 0.6rem; + align-items: flex-start; + gap: 0.5rem; cursor: pointer; margin: 0; + font-size: 0.85rem; +} + +@media (min-width: 768px) { + .checkbox-label { + gap: 0.6rem; + font-size: 0.9rem; + } } .checkbox-input { @@ -1136,6 +1849,7 @@ body { cursor: pointer; accent-color: var(--secondary); flex-shrink: 0; + margin-top: 2px; } .checkbox-text { @@ -1145,16 +1859,21 @@ body { color: var(--text-dark); font-weight: 500; line-height: 1.4; - font-size: 0.9rem; +} + +.checkbox-text i { + color: var(--secondary); + font-size: 0.85rem; } .form-submit { display: inline-flex; align-items: center; + justify-content: center; gap: 0.4rem; background: var(--gradient); color: var(--white); - padding: 0.8rem 1.8rem; + padding: 0.75rem 1.5rem; border: none; border-radius: 8px; font-weight: 600; @@ -1164,9 +1883,16 @@ body { width: 100%; } -@media (min-width: 640px) { +@media (min-width: 480px) { .form-submit { width: auto; + padding: 0.85rem 2rem; + font-size: 0.95rem; + } +} + +@media (min-width: 768px) { + .form-submit { padding: 1rem 2.5rem; font-size: 1rem; } @@ -1187,11 +1913,19 @@ body { border: 1px solid #86efac; color: #166534; padding: 0.75rem; - border-radius: 8px; + border-radius: 6px; margin-bottom: 1rem; display: none; animation: slideDown 0.3s ease; - font-size: 0.9rem; + font-size: 0.85rem; +} + +@media (min-width: 768px) { + .form-success { + padding: 1rem; + border-radius: 8px; + font-size: 0.9rem; + } } @keyframes slideDown { @@ -1212,7 +1946,7 @@ body { .contact-info { display: grid; grid-template-columns: 1fr; - gap: 1.5rem; + gap: 1.25rem; max-width: 1100px; margin: 2rem auto; padding: 0 1rem; @@ -1221,16 +1955,22 @@ body { @media (min-width: 640px) { .contact-info { grid-template-columns: repeat(2, 1fr); + gap: 1.5rem; + } +} + +@media (min-width: 768px) { + .contact-info { gap: 2rem; - margin: 4rem auto; + margin: 3rem auto; } } .info-card { background: var(--white); border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 12px; - padding: 1.5rem; + border-radius: 10px; + padding: 1.25rem; text-align: center; box-shadow: var(--shadow); transition: var(--transition); @@ -1238,8 +1978,8 @@ body { @media (min-width: 768px) { .info-card { - border-radius: 16px; - padding: 2rem; + border-radius: 12px; + padding: 1.75rem; } } @@ -1250,46 +1990,67 @@ body { } .info-card-icon { - width: 50px; - height: 50px; + width: 44px; + height: 44px; background: var(--gradient); - border-radius: 10px; + border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--white); - font-size: 1.25rem; - margin: 0 auto 1rem; + font-size: 1rem; + margin: 0 auto 0.75rem; } @media (min-width: 768px) { .info-card-icon { - width: 60px; - height: 60px; - border-radius: 12px; - font-size: 1.5rem; + width: 56px; + height: 56px; + border-radius: 10px; + font-size: 1.3rem; + margin-bottom: 1rem; } } .info-card h3 { - font-size: 1rem; + font-size: 0.95rem; font-weight: 700; color: var(--text-dark); - margin-bottom: 0.4rem; + margin-bottom: 0.35rem; } @media (min-width: 768px) { .info-card h3 { - font-size: 1.25rem; + font-size: 1.1rem; margin-bottom: 0.5rem; } } .info-card p { color: var(--text-light); - font-size: 0.9rem; + font-size: 0.85rem; } +@media (min-width: 768px) { + .info-card p { + font-size: 0.9rem; + } +} + +.info-card a { + color: var(--secondary); + text-decoration: none; + font-weight: 600; + transition: color 0.3s ease; +} + +.info-card a:hover { + color: var(--primary); +} + +/* ======================= + TEAM SECTION + ======================= */ .team-section { background: var(--bg-light); padding: 2rem 1rem; @@ -1297,7 +2058,7 @@ body { @media (min-width: 768px) { .team-section { - padding: 4rem 2rem; + padding: 3.5rem 2rem; } } @@ -1308,37 +2069,44 @@ body { .team-header { text-align: center; - margin-bottom: 2rem; + margin-bottom: 1.75rem; } .team-header h2 { - font-size: clamp(1.3rem, 4vw, 2rem); + font-size: clamp(1.2rem, 4vw, 1.8rem); font-weight: 700; color: var(--text-dark); - margin-bottom: 0.3rem; + margin-bottom: 0.25rem; +} + +.team-header p { + color: var(--text-light); + font-size: 0.9rem; } .team-grid { display: grid; grid-template-columns: 1fr; - gap: 1.5rem; + gap: 1.25rem; } @media (min-width: 640px) { .team-grid { grid-template-columns: repeat(2, 1fr); + gap: 1.5rem; } } @media (min-width: 1024px) { .team-grid { grid-template-columns: repeat(3, 1fr); + gap: 2rem; } } .team-member { background: var(--white); - border-radius: 12px; + border-radius: 10px; overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); @@ -1347,7 +2115,7 @@ body { @media (min-width: 768px) { .team-member { - border-radius: 16px; + border-radius: 12px; } } @@ -1358,21 +2126,34 @@ body { .team-member-image { width: 100%; - height: 200px; + height: 180px; background: var(--gradient); display: flex; align-items: center; justify-content: center; - font-size: 3rem; + font-size: 2.5rem; color: var(--white); } +@media (min-width: 768px) { + .team-member-image { + height: 220px; + font-size: 3.5rem; + } +} + .team-member-info { - padding: 1.25rem; + padding: 1rem; +} + +@media (min-width: 768px) { + .team-member-info { + padding: 1.25rem; + } } .team-member h3 { - font-size: 0.95rem; + font-size: 0.9rem; font-weight: 700; color: var(--text-dark); margin-bottom: 0.2rem; @@ -1380,433 +2161,38 @@ body { @media (min-width: 768px) { .team-member h3 { - font-size: 1.1rem; + font-size: 1rem; } } .team-member p { color: var(--secondary); font-weight: 600; - margin-bottom: 0.5rem; - font-size: 0.85rem; + margin-bottom: 0.4rem; + font-size: 0.8rem; +} + +@media (min-width: 768px) { + .team-member p { + font-size: 0.85rem; + } } .team-member .bio { - color: var(--text-light); - font-size: 0.85rem; - line-height: 1.5; -} - -/* ======================= - Development Status - ======================= */ -.development-status { - padding: 3rem 1rem; - background: linear-gradient(135deg, #f8fafc 0%, #f0f4f9 100%); - border-top: 1px solid rgba(51, 124, 242, 0.1); -} - -@media (min-width: 768px) { - .development-status { - padding: 4rem 2rem; - } -} - -.status-container { - max-width: 1000px; - margin: 0 auto; -} - -.development-status h2 { - font-size: clamp(1.5rem, 4vw, 2rem); - color: var(--text-dark); - margin-bottom: 1rem; - text-align: center; - font-weight: 700; -} - -.status-intro { - font-size: 0.9rem; - color: var(--text-light); - text-align: center; - margin-bottom: 2rem; - line-height: 1.6; - max-width: 600px; - margin-left: auto; - margin-right: auto; -} - -.status-grid { - display: grid; - grid-template-columns: 1fr; - gap: 1rem; - margin-bottom: 2rem; -} - -@media (min-width: 640px) { - .status-grid { - grid-template-columns: repeat(2, 1fr); - gap: 1.25rem; - } -} - -@media (min-width: 1024px) { - .status-grid { - grid-template-columns: repeat(3, 1fr); - } -} - -.status-item { - background: var(--white); - border-radius: 10px; - padding: 1.25rem; - border: 1px solid rgba(51, 124, 242, 0.1); - transition: var(--transition); -} - -.status-item:hover { - transform: translateY(-3px); - box-shadow: var(--shadow-hover); - border-color: rgba(51, 124, 242, 0.2); -} - -.status-badge { - display: inline-block; - font-size: 11px; - font-weight: 700; - padding: 4px 10px; - border-radius: 4px; - margin-bottom: 0.75rem; - letter-spacing: 0.4px; - text-transform: uppercase; -} - -.status-item.ready .status-badge { - background: rgba(76, 175, 80, 0.15); - color: #2e7d32; -} - -.status-item.in-progress .status-badge { - background: rgba(255, 193, 7, 0.15); - color: #f57f17; -} - -.status-item.planned .status-badge { - background: rgba(51, 124, 242, 0.15); - color: var(--primary); -} - -.status-item h4 { - color: var(--text-dark); - font-size: 0.95rem; - margin: 0 0 0.5rem 0; - font-weight: 600; -} - -.status-item p { - color: var(--text-light); - font-size: 0.85rem; - margin: 0; - line-height: 1.5; -} - -.feedback-cta { - background: var(--white); - border: 2px solid rgba(51, 124, 242, 0.2); - border-radius: 10px; - padding: 1.75rem; - text-align: center; - transition: var(--transition); -} - -@media (min-width: 768px) { - .feedback-cta { - padding: 2.5rem; - } -} - -.feedback-cta:hover { - border-color: rgba(51, 124, 242, 0.4); - box-shadow: var(--shadow); -} - -.feedback-cta h3 { - color: var(--text-dark); - font-size: clamp(1rem, 3vw, 1.5rem); - margin: 0 0 0.75rem 0; - font-weight: 700; -} - -.feedback-cta p { - color: var(--text-light); - font-size: 0.9rem; - margin: 0 0 1rem 0; - line-height: 1.6; -} - -.feedback-cta a { - color: var(--secondary); - text-decoration: none; - font-weight: 600; - transition: color 0.3s ease; -} - -.feedback-cta a:hover { - color: var(--primary); - text-decoration: underline; -} - -/* ======================= - Article Layout - ======================= */ -.article-wrap { - max-width: 1200px; - margin: 4rem auto 2rem; - padding: 0 1rem; - display: grid; - grid-template-columns: 1fr; - gap: 2rem; -} - -@media (min-width: 900px) { - .article-wrap { - margin: 6rem auto 3rem; - grid-template-columns: 250px 1fr; - gap: 3rem; - } -} - -.article-aside { - position: static; -} - -@media (min-width: 900px) { - .article-aside { - position: sticky; - top: 80px; - align-self: start; - } -} - -.article-meta { - background: var(--white); - border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 10px; - padding: 0.75rem; - box-shadow: var(--shadow); - margin-bottom: 1rem; -} - -.article-title { - font-size: 0.9rem; - margin: 0 0 0.4rem 0; - font-weight: 600; -} - -.meta-row { - display: flex; - align-items: center; - gap: 0.4rem; color: var(--text-light); font-size: 0.8rem; - margin: 0.2rem 0; -} - -.back-navigation { - max-width: 1100px; - margin: 0 auto 2rem; - padding: 0 1rem; -} - -.back-link { - color: var(--secondary); - text-decoration: none; - font-weight: 600; - display: inline-flex; - align-items: center; - gap: 0.4rem; - transition: gap 0.3s ease; - font-size: 0.9rem; -} - -.back-link:hover { - gap: 0.6rem; -} - -.newsletter-content { - margin-top: 1rem; - background: var(--white); - border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 10px; - padding: 1.25rem; - box-shadow: var(--shadow); + line-height: 1.4; } @media (min-width: 768px) { - .newsletter-content { - margin-top: 1.25rem; - border-radius: 16px; - padding: 1.5rem; + .team-member .bio { + font-size: 0.85rem; + line-height: 1.5; } } -.newsletter-content h2, -.newsletter-content h3 { - margin-top: 0.75rem; - margin-bottom: 0.4rem; -} - -.newsletter-content p, -.newsletter-content li { - color: var(--text-dark); - font-size: 0.9rem; - line-height: 1.6; -} - -.newsletter-content ul { - padding-left: 1rem; -} - -.newsletter-content blockquote { - margin: 0.75rem 0; - padding: 0.75rem 1rem; - background: rgba(0, 212, 255, 0.08); - border-left: 4px solid var(--accent); - border-radius: 8px; - color: var(--text-dark); - font-size: 0.9rem; -} - -.newsletter-actions { - display: flex; - flex-direction: column; - gap: 0.5rem; - margin-top: 1rem; -} - -@media (min-width: 640px) { - .newsletter-actions { - flex-direction: row; - flex-wrap: wrap; - } -} - -.action-btn { - display: inline-flex; - align-items: center; - justify-content: center; - gap: 0.4rem; - border-radius: 8px; - padding: 0.6rem 1rem; - cursor: pointer; - border: none; - text-decoration: none; - font-weight: 600; - transition: var(--transition); - font-size: 0.85rem; - width: 100%; -} - -@media (min-width: 640px) { - .action-btn { - width: auto; - } -} - -.action-btn.primary { - background: var(--gradient); - color: var(--white); -} - -.action-btn.secondary { - background: var(--bg-light); - color: var(--text-dark); -} - -.action-btn:hover, -.action-btn:focus { - transform: translateY(-2px); -} - /* ======================= - Table of Contents - ======================= */ -.toc { - margin-top: 1rem; - background: var(--white); - border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 10px; - padding: 0.6rem; - box-shadow: var(--shadow); -} - -.toc-title { - font-weight: 700; - margin-bottom: 0.4rem; - color: var(--text-dark); - font-size: 0.85rem; -} - -#toc-list { - list-style: none; - padding-left: 0; -} - -#toc-list li { - margin: 0.2rem 0; -} - -#toc-list a { - text-decoration: none; - color: var(--text-dark); - font-size: 0.85rem; - transition: color 0.3s ease; -} - -#toc-list a:hover { - color: var(--secondary); -} - -.toc-h3 { - margin-left: 0.5rem; - opacity: 0.8; -} - -/* ======================= - Article Hero - ======================= */ -.article-hero { - display: flex; - align-items: center; - gap: 0.5rem; - margin-bottom: 0.75rem; -} - -.article-hero .newsletter-icon { - width: 36px; - height: 36px; - border-radius: 8px; - background: var(--gradient); - color: var(--white); - display: inline-flex; - align-items: center; - justify-content: center; - font-size: 0.9rem; - flex-shrink: 0; -} - -.article-main .article-hero { - margin-bottom: 1rem; -} - -.article-main .article-hero h1 { - font-size: clamp(1.3rem, 4vw, 1.8rem); - font-weight: 700; - margin: 0; -} - -/* ======================= - Values Section + VALUES SECTION ======================= */ .values-section { padding: 2rem 1rem; @@ -1815,7 +2201,7 @@ body { @media (min-width: 768px) { .values-section { - padding: 4rem 2rem; + padding: 3.5rem 2rem; } } @@ -1824,12 +2210,13 @@ body { grid-template-columns: 1fr; gap: 1.25rem; max-width: 1100px; - margin: 2rem auto 0; + margin: 1.5rem auto 0; } @media (min-width: 640px) { .values-grid { grid-template-columns: repeat(2, 1fr); + gap: 1.5rem; } } @@ -1837,13 +2224,14 @@ body { .values-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; + margin: 2rem auto 0; } } .value-card { background: var(--white); border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 12px; + border-radius: 10px; padding: 1.25rem; text-align: center; box-shadow: var(--shadow); @@ -1852,8 +2240,8 @@ body { @media (min-width: 768px) { .value-card { - border-radius: 16px; - padding: 2rem; + border-radius: 12px; + padding: 1.75rem; } } @@ -1864,30 +2252,30 @@ body { } .value-icon { - width: 48px; - height: 48px; + width: 44px; + height: 44px; background: var(--gradient); - border-radius: 10px; + border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--white); - font-size: 1.1rem; + font-size: 1rem; margin: 0 auto 0.75rem; } @media (min-width: 768px) { .value-icon { - width: 60px; - height: 60px; - border-radius: 12px; - font-size: 1.5rem; + width: 56px; + height: 56px; + border-radius: 10px; + font-size: 1.3rem; margin-bottom: 1rem; } } .value-card h3 { - font-size: 1rem; + font-size: 0.95rem; font-weight: 700; color: var(--text-dark); margin-bottom: 0.5rem; @@ -1895,19 +2283,26 @@ body { @media (min-width: 768px) { .value-card h3 { - font-size: 1.1rem; + font-size: 1.05rem; margin-bottom: 0.75rem; } } .value-card p { color: var(--text-light); - font-size: 0.85rem; - line-height: 1.5; + font-size: 0.8rem; + line-height: 1.4; +} + +@media (min-width: 768px) { + .value-card p { + font-size: 0.85rem; + line-height: 1.5; + } } /* ======================= - Stats Section + STATS SECTION ======================= */ .stats-section { background: linear-gradient(180deg, rgba(30, 78, 156, 0.06), @@ -1917,35 +2312,35 @@ body { @media (min-width: 768px) { .stats-section { - padding: 4rem 2rem; + padding: 3.5rem 2rem; } } .stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); - gap: 1rem; + gap: 0.75rem; max-width: 1100px; - margin: 2rem auto 0; + margin: 1.5rem auto 0; } @media (min-width: 640px) { .stats-grid { - grid-template-columns: repeat(2, 1fr); - gap: 1.5rem; + gap: 1rem; } } @media (min-width: 1024px) { .stats-grid { grid-template-columns: repeat(4, 1fr); - gap: 2rem; + gap: 1.5rem; + margin: 2rem auto 0; } } .stat-box { text-align: center; - padding: 1.25rem; + padding: 1rem; background: var(--white); border-radius: 10px; box-shadow: var(--shadow); @@ -1954,8 +2349,8 @@ body { @media (min-width: 768px) { .stat-box { - padding: 1.75rem; - border-radius: 16px; + padding: 1.5rem; + border-radius: 12px; } } @@ -1964,7 +2359,7 @@ body { } .stat-number { - font-size: 1.75rem; + font-size: 1.5rem; font-weight: 700; color: var(--primary); margin-bottom: 0.4rem; @@ -1972,18 +2367,24 @@ body { @media (min-width: 768px) { .stat-number { - font-size: 2rem; + font-size: 1.8rem; } } .stat-label { color: var(--text-light); font-weight: 600; - font-size: 0.85rem; + font-size: 0.8rem; +} + +@media (min-width: 768px) { + .stat-label { + font-size: 0.85rem; + } } /* ======================= - FAQ Section + FAQ SECTION ======================= */ .faq-section { padding: 2rem 1rem; @@ -1992,19 +2393,25 @@ body { @media (min-width: 768px) { .faq-section { - padding: 4rem 2rem; + padding: 3.5rem 2rem; } } .faq-container { max-width: 700px; - margin: 2rem auto 0; + margin: 1.5rem auto 0; +} + +@media (min-width: 768px) { + .faq-container { + margin: 2rem auto 0; + } } .faq-item { border: 1px solid rgba(30, 78, 156, 0.08); - border-radius: 10px; - margin-bottom: 0.75rem; + border-radius: 8px; + margin-bottom: 0.6rem; overflow: hidden; background: var(--white); box-shadow: var(--shadow); @@ -2013,8 +2420,8 @@ body { @media (min-width: 768px) { .faq-item { - border-radius: 12px; - margin-bottom: 1rem; + border-radius: 10px; + margin-bottom: 0.75rem; } } @@ -2024,7 +2431,7 @@ body { } .faq-question { - padding: 1rem; + padding: 0.9rem; cursor: pointer; display: flex; justify-content: space-between; @@ -2035,7 +2442,7 @@ body { @media (min-width: 768px) { .faq-question { - padding: 1.25rem; + padding: 1.1rem; } } @@ -2045,22 +2452,24 @@ body { .faq-question h3 { margin: 0; - font-size: 0.95rem; + font-size: 0.9rem; color: var(--text-dark); font-weight: 600; + text-align: left; } @media (min-width: 768px) { .faq-question h3 { - font-size: 1rem; + font-size: 0.95rem; } } .faq-question i { color: var(--secondary); transition: transform 0.3s ease; - font-size: 0.85rem; + font-size: 0.75rem; flex-shrink: 0; + margin-left: 0.5rem; } .faq-item.open .faq-question i { @@ -2079,122 +2488,80 @@ body { } .faq-answer p { - padding: 0 1rem 1rem; + padding: 0 0.9rem 0.9rem; color: var(--text-dark); - line-height: 1.6; - font-size: 0.9rem; + line-height: 1.5; + font-size: 0.85rem; } @media (min-width: 768px) { .faq-answer p { - padding: 0 1.25rem 1.25rem; - } -} - -.about-image { - display: flex; - align-items: center; - justify-content: center; -} - -.about-image div { - width: 100%; - height: 300px; - border-radius: 12px; - display: flex; - align-items: center; - justify-content: center; - font-size: 3rem; -} - -@media (min-width: 768px) { - .about-image div { - height: 400px; - border-radius: 16px; + padding: 0 1.1rem 1.1rem; + font-size: 0.9rem; } } /* ======================= - Empty State + EMPTY STATE ======================= */ .empty-state { text-align: center; - padding: 3rem 1rem; + padding: 2rem 1rem; } @media (min-width: 768px) { .empty-state { - padding: 4rem 2rem; + padding: 3.5rem 2rem; } } .empty-icon { - font-size: 3rem; + font-size: 2.5rem; margin-bottom: 1rem; - opacity: 0.5; + opacity: 0.4; } .empty-state h3 { - font-size: 1.25rem; + font-size: 1.1rem; font-weight: 700; color: var(--text-dark); margin-bottom: 0.5rem; } +@media (min-width: 768px) { + .empty-state h3 { + font-size: 1.3rem; + } +} + .empty-state p { color: var(--text-light); - margin-bottom: 1.5rem; + margin-bottom: 1.25rem; + font-size: 0.9rem; } .subscribe-prompt { display: inline-flex; align-items: center; - gap: 0.4rem; + gap: 0.35rem; background: var(--gradient); color: var(--white); - padding: 0.8rem 1.5rem; + padding: 0.7rem 1.4rem; border-radius: 50px; text-decoration: none; font-weight: 600; transition: var(--transition); + font-size: 0.9rem; +} + +@media (min-width: 768px) { + .subscribe-prompt { + padding: 0.8rem 1.6rem; + font-size: 0.95rem; + } } .subscribe-prompt:hover { transform: translateY(-2px); box-shadow: var(--shadow); -} - -/* ======================= - Accessibility & General - ======================= */ -main, -.section, -.page-header, -#features { - scroll-margin-top: calc(var(--navbar-height) + 12px); -} - -@media (min-width: 768px) { - main, - .section, - .page-header, - #features { - scroll-margin-top: calc(var(--navbar-height) + 20px); - } -} - -/* Focus states for keyboard navigation */ -a:focus, -button:focus { - outline: 2px solid var(--secondary); - outline-offset: 2px; -} - -/* Reduce motion for accessibility */ -@media (prefers-reduced-motion: reduce) { - * { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - } } \ No newline at end of file