/* ============================================================================= PPE LLM — Public landing page CSS Cream / charcoal editorial theme. This file complements the inline above-the-fold CSS in server_templates/html_landingpage.html (loaded async via preload). ============================================================================= */ /* ── Sections shared scaffolding ─────────────────────────────────────────── */ .contrast-section, .how-section, .features-section, .cta-section { padding: 96px 0; } .how-section, .features-section, .cta-section { border-top: 1px solid var(--border-soft); } .contrast-section .section-label, .how-section .section-label, .features-section .section-label { font-size: 12px; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; } .contrast-section h2, .how-section h2, .features-section h2 { font-size: clamp(28px, 4vw, 48px); font-weight: 600; line-height: 1.05; letter-spacing: -1.2px; color: var(--charcoal); max-width: 560px; margin-bottom: 56px; } .how-section h2 { max-width: 500px; } .features-section h2 { max-width: 480px; } /* ── HERO DIAGRAM ────────────────────────────────────────────────────────── */ .hero-diagram { margin: 56px auto 0; max-width: 680px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; border: 1px solid var(--border-soft); border-radius: 12px; overflow: hidden; } .hero-diagram-step { background: var(--offwhite); padding: 18px 14px; text-align: center; position: relative; } .hero-diagram-step + .hero-diagram-step { border-left: 1px solid var(--border-soft); } .hero-diagram-step:last-child { background: var(--charcoal); } .hd-num { font-size: 11px; font-weight: 400; color: var(--muted); letter-spacing: 0.05em; margin-bottom: 6px; } .hero-diagram-step:last-child .hd-num { color: rgba(252,251,248,0.5); } .hd-label { font-size: 13px; font-weight: 600; color: var(--charcoal); letter-spacing: -0.2px; } .hero-diagram-step:last-child .hd-label { color: var(--offwhite); } .hd-icon { font-size: 22px; margin-bottom: 8px; display: block; } .hero-diagram-step:last-child .hd-icon { color: var(--offwhite); } /* ── CONTRAST CARDS ──────────────────────────────────────────────────────── */ .contrast-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; } .contrast-card { border: 1px solid var(--border-soft); border-radius: 12px; padding: 32px; } .contrast-card.bad { background: rgba(28,28,28,0.03); } .contrast-card.good { background: var(--offwhite); border-color: rgba(244,162,122,0.35); } .contrast-card-label { font-size: 11px; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 16px; } .contrast-card.bad .contrast-card-label { color: var(--muted); } .contrast-card.good .contrast-card-label { color: #b96b3a; } .contrast-card h3 { font-size: 20px; font-weight: 600; letter-spacing: -0.4px; margin-bottom: 20px; } .contrast-list { list-style: none; display: flex; flex-direction: column; gap: 10px; } .contrast-list li { font-size: 15px; color: var(--muted); padding-left: 20px; position: relative; line-height: 1.45; } .contrast-list li::before { content: attr(data-icon); position: absolute; left: 0; top: 0; font-size: 13px; } /* ── HOW IT WORKS GRID ───────────────────────────────────────────────────── */ .steps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; border: 1px solid var(--border-soft); border-radius: 12px; overflow: hidden; } .step-card { background: var(--offwhite); padding: 28px 22px; } .step-card + .step-card { border-left: 1px solid var(--border-soft); } .step-card:last-child { background: linear-gradient(135deg, rgba(244,162,122,0.12) 0%, rgba(247,196,154,0.12) 100%); } .step-num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 9999px; background: var(--charcoal); color: var(--offwhite); font-size: 12px; font-weight: 600; margin-bottom: 16px; } .step-card:last-child .step-num { background: linear-gradient(135deg, #f4a27a, #e8885a); } .step-card h3 { font-size: 16px; font-weight: 600; letter-spacing: -0.2px; color: var(--charcoal); margin-bottom: 8px; } .step-card p { font-size: 14px; color: var(--muted); line-height: 1.55; } /* ── FEATURES GRID ───────────────────────────────────────────────────────── */ .features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; } .feature-card { border: 1px solid var(--border-soft); border-radius: 12px; padding: 28px 24px; background: var(--offwhite); } .feature-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 9999px; border: 1px solid var(--border-soft); background: var(--cream); font-size: 18px; margin-bottom: 16px; } .feature-card h3 { font-size: 17px; font-weight: 600; letter-spacing: -0.3px; color: var(--charcoal); margin-bottom: 8px; } .feature-card p { font-size: 14px; color: var(--muted); line-height: 1.6; } /* ── FINAL CTA ───────────────────────────────────────────────────────────── */ .cta-section { padding: 96px 0 128px; text-align: center; position: relative; overflow: hidden; } .cta-section::before { content: ''; position: absolute; inset: -60px; background: radial-gradient(ellipse 600px 300px at 50% 50%, rgba(255,180,160,0.22) 0%, transparent 65%), radial-gradient(ellipse 400px 200px at 20% 70%, rgba(255,210,140,0.15) 0%, transparent 60%), radial-gradient(ellipse 350px 200px at 80% 30%, rgba(180,195,255,0.13) 0%, transparent 60%); pointer-events: none; z-index: 0; } .cta-section .container { position: relative; z-index: 1; } .cta-badge { display: inline-block; font-size: 13px; font-weight: 400; color: var(--muted); border: 1px solid var(--border-soft); border-radius: 9999px; padding: 4px 14px; margin-bottom: 28px; background: rgba(252,251,248,0.7); } .cta-section h2 { font-size: clamp(28px, 5vw, 52px); font-weight: 600; line-height: 1.07; letter-spacing: -1.3px; color: var(--charcoal); max-width: 640px; margin: 0 auto 18px; } .cta-sub { font-size: 17px; color: var(--muted); margin-bottom: 36px; max-width: 440px; margin-left: auto; margin-right: auto; } .cta-note { margin-top: 18px; font-size: 13px; color: rgba(28,28,28,0.4); } /* ── RESPONSIVE ──────────────────────────────────────────────────────────── */ @media (max-width: 768px) { .hero { padding: 64px 0 72px; } .hero h1 { letter-spacing: -0.8px; } .hero-diagram { grid-template-columns: repeat(2, 1fr); } .hero-diagram-step + .hero-diagram-step:nth-child(3) { border-left: none; border-top: 1px solid var(--border-soft); } .hero-diagram-step + .hero-diagram-step:nth-child(4) { border-top: 1px solid var(--border-soft); } .contrast-section, .how-section, .features-section, .cta-section { padding: 64px 0; } .contrast-grid { grid-template-columns: 1fr; } .steps-grid { grid-template-columns: 1fr 1fr; } .step-card + .step-card:nth-child(3) { border-left: none; border-top: 1px solid var(--border-soft); } .step-card + .step-card:nth-child(4) { border-top: 1px solid var(--border-soft); } .features-grid { grid-template-columns: 1fr 1fr; } } @media (max-width: 480px) { .hero-diagram { grid-template-columns: 1fr 1fr; } .steps-grid { grid-template-columns: 1fr; } .step-card + .step-card { border-left: none; border-top: 1px solid var(--border-soft); } .features-grid { grid-template-columns: 1fr; } .hero h1 { letter-spacing: -0.5px; } }
