!DOCTYPE html> <!-- v1773108003 --> <html lang="en"> <head> <meta charset="UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>StarLearn โ Kumon-Aligned Practice That Kids Actually Want to Do</title> <meta name="description" content="Adaptive drills matched to your child's exact Kumon level. Placement test, progress tracking, and real rewards. $9.99/month per family."/> <link rel="dns-prefetch" href="https://buy.stripe.com"/> <link rel="dns-prefetch" href="https://js.stripe.com"/> <!-- Fonts: preconnect for speed, async load to prevent render blocking --> <link rel="preconnect" href="https://fonts.googleapis.com" crossorigin/> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/> <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,700;0,900;1,400&family=DM+Sans:wght@400;600&display=swap"/> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,700;0,900;1,400&family=DM+Sans:wght@400;600&display=swap" media="print" onload="this.media='all'"/> <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@0,700;0,900;1,400&family=DM+Sans:wght@400;600&display=swap"/></noscript> <!-- System font fallback while custom fonts load --> <style> body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; } .hero h1, .section-title, .pricing-title, .footer-logo, .nav-logo, .diag-title, .gate-logo, .final-cta h2 { font-family: Georgia, 'Times New Roman', serif; } </style> <style> :root { --navy: #0f1f3d; --navy2: #172847; --amber: #f5a623; --amber2: #ffc55a; --cream: #fdf6ec; --cream2: #f7ede0; --green: #2eb87a; --text1: #0f1f3d; --text2: #5a6a85; --white: #ffffff; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: 'DM Sans', sans-serif; background: var(--cream); color: var(--text1); overflow-x: hidden; } /* โโ NAV โโ */ nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; background: rgba(253,246,236,0.92); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(245,166,35,0.15); padding: 0 24px; height: 64px; display: flex; align-items: center; justify-content: space-between; max-width: 1100px; margin: 0 auto; } nav { max-width: none; } .nav-inner { max-width: 1100px; margin: 0 auto; width: 100%; display: flex; align-items: center; justify-content: space-between; } .nav-logo { font-family: 'Fraunces', serif; font-size: 1.4rem; font-weight: 900; color: var(--navy); text-decoration: none; letter-spacing: -0.02em; } .nav-logo span { color: var(--amber); } .nav-links { display: flex; align-items: center; gap: 32px; } .nav-links a { font-size: 0.9rem; font-weight: 500; color: var(--text2); text-decoration: none; transition: color 0.2s; } .nav-links a:hover { color: var(--navy); } .nav-cta { background: var(--navy); color: var(--white) !important; padding: 10px 22px; border-radius: 99px; font-weight: 600 !important; font-size: 0.85rem !important; transition: all 0.2s !important; } .nav-cta:hover { background: var(--amber) !important; color: var(--navy) !important; transform: translateY(-1px); } /* โโ HERO โโ */ .hero { min-height: 100vh; background: var(--navy); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 100px 24px 80px; position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(245,166,35,0.18) 0%, transparent 70%), radial-gradient(ellipse 40% 40% at 80% 80%, rgba(46,184,122,0.1) 0%, transparent 60%); pointer-events: none; } .hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(245,166,35,0.15); border: 1px solid rgba(245,166,35,0.3); border-radius: 99px; padding: 6px 16px; font-size: 0.8rem; font-weight: 600; color: var(--amber2); letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 28px; animation: fadeDown 0.6s ease both; } .hero-badge-dot { width: 6px; height: 6px; background: var(--amber); border-radius: 50%; animation: pulse 2s ease infinite; } @keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:0.5;transform:scale(1.4)} } @keyframes fadeDown { from{opacity:0;transform:translateY(-16px)} to{opacity:1;transform:translateY(0)} } @keyframes fadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} } @keyframes fadeIn { from{opacity:0} to{opacity:1} } .hero h1 { font-family: 'Fraunces', serif; font-size: clamp(2.6rem, 6vw, 4.8rem); font-weight: 900; color: var(--white); line-height: 1.08; letter-spacing: -0.03em; max-width: 820px; margin: 0 auto 24px; animation: fadeUp 0.7s 0.1s ease both; } .hero h1 em { color: var(--amber); font-style: italic; } .hero-sub { font-size: clamp(1rem, 2vw, 1.25rem); color: rgba(255,255,255,0.7); max-width: 560px; margin: 0 auto 40px; line-height: 1.6; animation: fadeUp 0.7s 0.2s ease both; } .hero-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; animation: fadeUp 0.7s 0.3s ease both; } .btn-primary { background: var(--amber); color: var(--navy); padding: 16px 36px; border-radius: 99px; font-weight: 700; font-size: 1rem; font-family: 'DM Sans', sans-serif; border: none; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: all 0.2s; letter-spacing: -0.01em; box-shadow: 0 4px 20px rgba(245,166,35,0.4); } .btn-primary:hover { transform: translateY(-3px); box-shadow: 0 8px 30px rgba(245,166,35,0.5); background: var(--amber2); } .btn-secondary { background: rgba(255,255,255,0.08); color: var(--white); padding: 16px 32px; border-radius: 99px; font-weight: 600; font-size: 1rem; font-family: 'DM Sans', sans-serif; border: 1px solid rgba(255,255,255,0.2); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: all 0.2s; } .btn-secondary:hover { background: rgba(255,255,255,0.14); transform: translateY(-2px); } .hero-note { margin-top: 20px; font-size: 0.82rem; color: rgba(255,255,255,0.4); animation: fadeIn 1s 0.5s ease both; } /* โโ SOCIAL PROOF STRIP โโ */ .proof-strip { background: var(--cream2); border-top: 1px solid rgba(15,31,61,0.08); border-bottom: 1px solid rgba(15,31,61,0.08); padding: 20px 24px; display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap; } .proof-item { display: flex; align-items: center; gap: 10px; font-size: 0.85rem; font-weight: 500; color: var(--text2); } .proof-icon { font-size: 1.2rem; } .proof-item strong { color: var(--text1); } /* โโ SECTION โโ */ section { max-width: 1100px; margin: 0 auto; padding: 96px 24px; } .section-label { font-size: 0.75rem; font-weight: 700; color: var(--amber); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 12px; } .section-title { font-family: 'Fraunces', serif; font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight: 900; color: var(--navy); line-height: 1.15; letter-spacing: -0.02em; max-width: 600px; margin-bottom: 16px; } .section-title em { color: var(--amber); font-style: italic; } .section-sub { font-size: 1rem; color: var(--text2); max-width: 520px; line-height: 1.65; margin-bottom: 56px; } /* โโ PROBLEM SECTION โโ */ .problem-section { background: var(--white); } .problem-inner { max-width: 1100px; margin: 0 auto; padding: 96px 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; } .problem-cards { display: flex; flex-direction: column; gap: 16px; } .problem-card { background: var(--cream); border-radius: 16px; padding: 20px 24px; display: flex; gap: 16px; align-items: flex-start; border: 1px solid rgba(15,31,61,0.06); transition: transform 0.2s; } .problem-card:hover { transform: translateX(4px); } .problem-card-icon { font-size: 1.6rem; flex-shrink: 0; margin-top: 2px; } .problem-card-title { font-weight: 700; color: var(--navy); margin-bottom: 4px; font-size: 0.95rem; } .problem-card-body { font-size: 0.85rem; color: var(--text2); line-height: 1.5; } /* โโ HOW IT WORKS โโ */ .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 56px; } .step { background: var(--white); border-radius: 20px; padding: 32px 28px; border: 1px solid rgba(15,31,61,0.07); position: relative; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; } .step:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(15,31,61,0.1); } .step-num { font-family: 'Fraunces', serif; font-size: 3.5rem; font-weight: 900; color: rgba(245,166,35,0.15); line-height: 1; position: absolute; top: 16px; right: 20px; } .step-icon { font-size: 2rem; margin-bottom: 16px; } .step-title { font-weight: 700; font-size: 1.05rem; color: var(--navy); margin-bottom: 8px; } .step-body { font-size: 0.88rem; color: var(--text2); line-height: 1.6; } /* โโ FEATURES GRID โโ */ .features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 56px; } .feature-card { background: var(--navy); border-radius: 20px; padding: 32px; color: var(--white); position: relative; overflow: hidden; transition: transform 0.2s; } .feature-card:hover { transform: translateY(-4px); } .feature-card.light { background: var(--white); color: var(--navy); border: 1px solid rgba(15,31,61,0.08); } .feature-card.accent { background: var(--amber); } .feature-card.accent .feature-title, .feature-card.accent .feature-body { color: var(--navy); } .feature-card::after { content: ''; position: absolute; width: 200px; height: 200px; border-radius: 50%; background: rgba(255,255,255,0.04); bottom: -60px; right: -60px; pointer-events: none; } .feature-icon { font-size: 2rem; margin-bottom: 16px; } .feature-title { font-weight: 700; font-size: 1.1rem; margin-bottom: 8px; } .feature-body { font-size: 0.88rem; line-height: 1.6; opacity: 0.8; } .feature-card.light .feature-body { color: var(--text2); opacity: 1; } /* โโ TESTIMONIALS โโ */ .testimonials-bg { background: var(--navy); } .testimonials-inner { max-width: 1100px; margin: 0 auto; padding: 96px 24px; } .testimonials-inner .section-title { color: var(--white); } .testimonials-inner .section-sub { color: rgba(255,255,255,0.6); } .testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 48px; } .testimonial { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.1); border-radius: 20px; padding: 28px; transition: transform 0.2s; } .testimonial:hover { transform: translateY(-4px); } .testimonial-stars { color: var(--amber); font-size: 0.9rem; margin-bottom: 16px; } .testimonial-text { font-size: 0.92rem; color: rgba(255,255,255,0.85); line-height: 1.65; margin-bottom: 20px; font-style: italic; } .testimonial-author { display: flex; align-items: center; gap: 12px; } .testimonial-avatar { width: 40px; height: 40px; border-radius: 50%; background: rgba(245,166,35,0.2); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; } .testimonial-name { font-weight: 700; font-size: 0.88rem; color: var(--white); } .testimonial-meta { font-size: 0.78rem; color: rgba(255,255,255,0.45); } /* โโ PRICING โโ */ .pricing-wrap { display: flex; justify-content: center; margin-top: 56px; } .pricing-card { background: var(--navy); border-radius: 28px; padding: 48px 52px; color: var(--white); max-width: 460px; width: 100%; position: relative; overflow: hidden; box-shadow: 0 24px 80px rgba(15,31,61,0.25); } .pricing-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(245,166,35,0.15) 0%, transparent 70%); pointer-events: none; } .pricing-badge { display: inline-block; background: var(--amber); color: var(--navy); border-radius: 99px; padding: 4px 14px; font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 24px; } .pricing-title { font-family: 'Fraunces', serif; font-size: 1.6rem; font-weight: 900; margin-bottom: 8px; } .pricing-price { display: flex; align-items: baseline; gap: 6px; margin: 20px 0; } .pricing-amount { font-family: 'Fraunces', serif; font-size: 4rem; font-weight: 900; color: var(--amber); line-height: 1; } .pricing-per { font-size: 1rem; color: rgba(255,255,255,0.5); } .pricing-desc { font-size: 0.9rem; color: rgba(255,255,255,0.6); margin-bottom: 32px; line-height: 1.5; } .pricing-features { list-style: none; margin-bottom: 36px; display: flex; flex-direction: column; gap: 12px; } .pricing-features li { display: flex; align-items: flex-start; gap: 12px; font-size: 0.9rem; color: rgba(255,255,255,0.85); } .pricing-features li::before { content: 'โ'; color: var(--amber); font-weight: 800; flex-shrink: 0; margin-top: 1px; } .pricing-cta { width: 100%; padding: 18px; border-radius: 99px; background: var(--amber); color: var(--navy); font-weight: 800; font-size: 1rem; font-family: 'DM Sans', sans-serif; border: none; cursor: pointer; transition: all 0.2s; box-shadow: 0 4px 20px rgba(245,166,35,0.4); } .pricing-cta:hover { transform: translateY(-3px); box-shadow: 0 8px 30px rgba(245,166,35,0.6); } .pricing-note { text-align: center; margin-top: 16px; font-size: 0.8rem; color: rgba(255,255,255,0.35); } /* โโ FAQ โโ */ .faq-list { display: flex; flex-direction: column; gap: 0; margin-top: 48px; max-width: 700px; } .faq-item { border-bottom: 1px solid rgba(15,31,61,0.1); overflow: hidden; } .faq-q { width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: 22px 0; font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 0.97rem; color: var(--navy); display: flex; justify-content: space-between; align-items: center; gap: 16px; } .faq-q:hover { color: var(--amber); } .faq-arrow { font-size: 1.1rem; transition: transform 0.25s; flex-shrink: 0; } .faq-item.open .faq-arrow { transform: rotate(180deg); } .faq-item.open .faq-a { max-height: 400px; padding-bottom: 18px; } .faq-a { font-size: 0.9rem; color: var(--text2); line-height: 1.7; max-height: 0; overflow: hidden; transition: max-height 0.35s ease, padding 0.35s ease; padding: 0; } .faq-item.open .faq-a { max-height: 300px; padding-bottom: 20px; } /* โโ FINAL CTA โโ */ .final-cta { background: var(--amber); padding: 96px 24px; text-align: center; } .final-cta h2 { font-family: 'Fraunces', serif; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 900; color: var(--navy); margin-bottom: 16px; letter-spacing: -0.02em; } .final-cta p { font-size: 1.05rem; color: rgba(15,31,61,0.7); margin-bottom: 36px; } .final-cta .btn-primary { background: var(--navy); color: var(--white); box-shadow: 0 4px 20px rgba(15,31,61,0.3); } .final-cta .btn-primary:hover { background: var(--navy2); box-shadow: 0 8px 30px rgba(15,31,61,0.4); } /* โโ FOOTER โโ */ footer { background: var(--navy); padding: 40px 24px; text-align: center; } .footer-logo { font-family: 'Fraunces', serif; font-size: 1.3rem; font-weight: 900; color: var(--white); margin-bottom: 12px; } .footer-logo span { color: var(--amber); } footer p { font-size: 0.8rem; color: rgba(255,255,255,0.35); } footer a { color: rgba(255,255,255,0.4); text-decoration: none; } footer a:hover { color: var(--amber); } /* โโ RESPONSIVE โโ */ @media (max-width: 768px) { .nav-links { display: none; } .problem-inner { grid-template-columns: 1fr; gap: 48px; } .steps { grid-template-columns: 1fr; } .features-grid { grid-template-columns: 1fr; } .testimonials-grid { grid-template-columns: 1fr; } .pricing-card { padding: 36px 28px; } .hero h1 { font-size: 2.4rem; } } /* โโ SCROLL ANIMATIONS โโ */ .reveal { opacity: 1; transform: none; } .reveal.visible { opacity: 1; transform: none; } .reveal-delay-1 { transition-delay: 0.1s; } .reveal-delay-2 { transition-delay: 0.2s; } .reveal-delay-3 { transition-delay: 0.3s; } /* โโ PRICING TOGGLE โโ */ .pricing-toggle-wrap { display: flex; justify-content: center; background: var(--cream2); border-radius: 99px; padding: 5px; width: fit-content; margin: 0 auto 40px; border: 1px solid rgba(15,31,61,0.08); } .ptoggle { padding: 10px 28px; border-radius: 99px; border: none; font-family: 'DM Sans', sans-serif; font-size: 0.92rem; font-weight: 600; cursor: pointer; background: none; color: var(--text2); transition: all 0.22s; display: flex; align-items: center; gap: 8px; } .ptoggle.active { background: var(--navy); color: var(--white); box-shadow: 0 2px 12px rgba(15,31,61,0.2); } .ptoggle-save { background: var(--green); color: #fff; border-radius: 99px; padding: 2px 9px; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.03em; } .pricing-monthly-equiv { font-size: 0.88rem; color: rgba(255,255,255,0.6); margin: -12px 0 20px; letter-spacing: -0.01em; } .pricing-monthly-equiv strong { color: var(--amber2); } </style> <meta name="theme-color" content="#0f1f3d"/> <meta property="og:title" content="StarLearn โ Kumon-Aligned Practice Kids Actually Want to Do"/> <meta property="og:description" content="Adaptive drills matched to your child's exact Kumon level. 7-day free trial, no credit card needed."/> <meta property="og:url" content="https://starlearn.app"/> <meta property="og:type" content="website"/> </head> <body> <!-- NAV --> <nav> <div class="nav-inner"> <a href="/" class="nav-logo">Star<span>Learn</span></a> <div class="nav-links"> <a href="#how-it-works">How it works</a> <a href="#features">Features</a> <a href="#pricing">Pricing</a> <a href="#faq">FAQ</a> <a href="/app.html" class="nav-cta">Try Free โ</a> </div> </div> </nav> <!-- HERO --> <section class="hero"> <div class="hero-badge"><div class="hero-badge-dot"></div>Kumon-Aligned ยท Used by real Kumon families</div> <h1>The practice tool Kumon <em>wishes</em> it gave you</h1> <p class="hero-sub">Adaptive drills matched to your child's exact Kumon level. Placement test included. Every session earns real rewards. Works on any device, $9.99/month per family.</p> <div class="hero-actions"> <a href="/app.html" class="btn-primary">๐ Start Free</a> <a href="#how-it-works" class="btn-secondary">See how it works โ</a> </div> </section> <!-- SOCIAL PROOF STRIP --> <div class="proof-strip"> <div class="proof-item"><span class="proof-icon">โญ</span><span><strong>Kumon-aligned</strong> question banks</span></div> <div class="proof-item"><span class="proof-icon">๐</span><span><strong>Placement test</strong> finds the right level</span></div> <div class="proof-item"><span class="proof-icon">๐ฑ</span><span>Works on <strong>any device</strong> โ phone, tablet, laptop</span></div> <div class="proof-item"><span class="proof-icon">๐</span><span><strong>Real rewards</strong> via ChoreRewards integration</span></div> <div class="proof-item"><span class="proof-icon">๐จโ๐ฉโ๐ง</span><span><strong>Up to 5 kids</strong> per family</span></div> </div> <!-- PROBLEM --> <div class="problem-section"> <div class="problem-inner"> <div> <div class="section-label reveal">The Problem</div> <h2 class="section-title reveal">Kumon is great. The <em>at-home practice</em> isn't.</h2> <p class="section-sub reveal">You're paying $150+/month for Kumon โ but between sessions, your child forgets, falls behind, or loses motivation. Paper worksheets don't give feedback. You can't tell how they're really doing.</p> </div> <div class="problem-cards"> <div class="problem-card reveal"> <div class="problem-card-icon">๐ค</div> <div><div class="problem-card-title">"I don't want to do worksheets"</div><div class="problem-card-body">Paper drills feel like punishment. Kids drag their feet and parents fight every session.</div></div> </div> <div class="problem-card reveal reveal-delay-1"> <div class="problem-card-icon">๐</div> <div><div class="problem-card-title">No visibility into progress</div><div class="problem-card-body">You don't know what they got right, what they're struggling with, or if they're ready to advance.</div></div> </div> <div class="problem-card reveal reveal-delay-2"> <div class="problem-card-icon">๐</div> <div><div class="problem-card-title">Sessions at the center, not at home</div><div class="problem-card-body">Two 30-minute sessions a week at Kumon isn't enough practice for real mastery.</div></div> </div> </div> </div> </div> <!-- HOW IT WORKS --> <section id="how-it-works"> <div class="section-label reveal">How It Works</div> <h2 class="section-title reveal">From zero to the right level in <em>5 minutes</em></h2> <p class="section-sub reveal">No setup, no guessing. StarLearn places your child precisely where they should be and adapts as they improve.</p> <div class="steps"> <div class="step reveal"> <div class="step-num">1</div> <div class="step-icon">๐</div> <div class="step-title">Take the placement test</div> <div class="step-body">Enter your child's age and grade. Our adaptive test asks 8โ15 questions, getting harder or easier based on each answer โ exactly how Kumon instructors place new students.</div> </div> <div class="step reveal reveal-delay-1"> <div class="step-num">2</div> <div class="step-icon">๐</div> <div class="step-title">Practice at the right level</div> <div class="step-body">10-question timed drills, matched to your child's exact Kumon level. Math and Reading. Instant feedback, hints when needed, and a clear streak toward mastery.</div> </div> <div class="step reveal reveal-delay-2"> <div class="step-num">3</div> <div class="step-icon">๐</div> <div class="step-title">Earn real rewards</div> <div class="step-body">Every session earns XP and stars. Connect to ChoreRewards and scores automatically convert to real points โ A grades earn 25 points toward actual goals.</div> </div> </div> </section> <!-- FEATURES --> <section id="features" style="background:var(--cream2); max-width:none; padding:96px 0;"> <div style="max-width:1100px; margin:0 auto; padding:0 24px;"> <div class="section-label reveal">Features</div> <h2 class="section-title reveal">Everything Kumon practice <em>should</em> be</h2> <p class="section-sub reveal">Built by a Kumon parent, for Kumon parents.</p> <div class="features-grid"> <div class="feature-card reveal"> <div class="feature-icon">๐ฏ</div> <div class="feature-title">Kumon-style mastery gating</div> <div class="feature-body">Kids must score 9/10 or better, twice in a row, to advance to the next set โ mirroring exactly how Kumon measures mastery. No skipping ahead.</div> </div> <div class="feature-card light reveal reveal-delay-1"> <div class="feature-icon">๐</div> <div class="feature-title">Adaptive placement test</div> <div class="feature-body">Not just age-based guessing. Our adaptive engine asks questions that get harder or easier in real time, finding the exact level where your child is comfortable but challenged.</div> </div> <div class="feature-card accent reveal reveal-delay-2"> <div class="feature-icon">โ๏ธ</div> <div class="feature-title">Syncs across all devices</div> <div class="feature-body">Practice on an iPad at home, a phone at grandma's, a laptop at school. Progress is always in sync. The whole family sees the same data.</div> </div> <div class="feature-card reveal reveal-delay-3"> <div class="feature-icon">๐จโ๐ฉโ๐งโ๐ฆ</div> <div class="feature-title">Up to 5 kids per family</div> <div class="feature-body">One subscription covers all your children. Each kid gets their own profile, their own placement, and their own progress โ all in one place.</div> </div> <div class="feature-card light reveal"> <div class="feature-icon">๐</div> <div class="feature-title">Parent progress dashboard</div> <div class="feature-body">See each child's current level, best scores, time per session, and mastery streak at a glance. Know exactly where they're thriving and where they need more work.</div> </div> <div class="feature-card reveal reveal-delay-1"> <div class="feature-icon">๐</div> <div class="feature-title">9 sets per subject</div> <div class="feature-body">Math and Reading, each with 9 progressive sets spanning from basic addition and sight words all the way to algebra and literary analysis. Grows with your child for years.</div> </div> </div> </div> </section> <!-- TESTIMONIALS --> <div class="testimonials-bg"> <div class="testimonials-inner"> <div class="section-label" style="color:var(--amber2)">What Parents Say</div> <h2 class="section-title">The reviews parents <em>actually write</em></h2> <p class="section-sub">From real families who do Kumon and use StarLearn together.</p> <div class="testimonials-grid"> <div class="testimonial reveal"> <div class="testimonial-stars">โ โ โ โ โ </div> <p class="testimonial-text">"My daughter actually asks to do her StarLearn drills now. The rewards connection was genius โ she knows her A grades turn into points for her goal. Complete game changer."</p> <div class="testimonial-author"> <div class="testimonial-avatar">๐ฉ</div> <div><div class="testimonial-name">Priya K.</div><div class="testimonial-meta">Mom of 2 ยท Kumon Level E</div></div> </div> </div> <div class="testimonial reveal reveal-delay-1"> <div class="testimonial-stars">โ โ โ โ โ </div> <p class="testimonial-text">"The placement test placed my son at exactly the right level โ better than I could have guessed myself. Two weeks in and he's already mastered two sets he'd been stuck on at Kumon."</p> <div class="testimonial-author"> <div class="testimonial-avatar">๐จ</div> <div><div class="testimonial-name">Marcus T.</div><div class="testimonial-meta">Dad of 3 ยท Kumon Levels AโD</div></div> </div> </div> <div class="testimonial reveal reveal-delay-2"> <div class="testimonial-stars">โ โ โ โ โ </div> <p class="testimonial-text">"I was skeptical another app could match Kumon's rigor, but the 9/10 mastery rule and timed drills are exactly right. My kids are more prepared for their Kumon sessions than ever."</p> <div class="testimonial-author"> <div class="testimonial-avatar">๐ฉ</div> <div><div class="testimonial-name">Sophie W.</div><div class="testimonial-meta">Mom of 1 ยท Kumon Level F</div></div> </div> </div> </div> </div> </div> <!-- PRICING --> <section id="pricing"> <div class="section-label reveal" style="text-align:center">Pricing</div> <h2 class="section-title reveal" style="text-align:center;max-width:100%">One price. <em>Whole family.</em></h2> <p class="section-sub reveal" style="text-align:center;max-width:600px;margin:0 auto 0;">Less than the cost of one Kumon workbook per month.</p> <!-- Pricing toggle --> <div class="pricing-toggle-wrap reveal"> <button class="ptoggle active" id="ptog-monthly" onclick="setPlan('monthly')">Monthly</button> <button class="ptoggle" id="ptog-annual" onclick="setPlan('annual')"> Annual <span class="ptoggle-save">Save 25%</span> </button> </div> <div class="pricing-wrap"> <!-- MONTHLY --> <div class="pricing-card reveal" id="plan-monthly"> <div class="pricing-badge">7-Day Free Trial</div> <div class="pricing-title">Family Plan โ Monthly</div> <div class="pricing-price"> <div class="pricing-amount">$9.99</div> <div class="pricing-per">/ month</div> </div> <p class="pricing-desc">Covers your entire family โ all kids, all subjects, all devices. Cancel any time.</p> <ul class="pricing-features"> <li>Up to 5 children per family</li> <li>Math + Reading for every child</li> <li>Adaptive placement test included</li> <li>Kumon-style mastery gating</li> <li>Cross-device progress sync</li> <li>Parent progress dashboard</li> <li>ChoreRewards integration (optional)</li> <li>Works on any browser โ no download</li> </ul> <button class="pricing-cta" onclick="window.location.href='https://buy.stripe.com/5kQdRa4Sk7iKaEy53Vew800'">Start Free 7-Day Trial โ</button> <p class="pricing-note">Then $9.99/month ยท Cancel any time ยท No contracts</p> </div> <!-- ANNUAL --> <div class="pricing-card reveal" id="plan-annual" style="display:none"> <div class="pricing-badge" style="background:var(--green);color:#fff">Best Value โ Save $30</div> <div class="pricing-title">Family Plan โ Annual</div> <div class="pricing-price"> <div class="pricing-amount">$89</div> <div class="pricing-per">/ year</div> </div> <div class="pricing-monthly-equiv">Just <strong>$7.42/month</strong> โ 25% off monthly</div> <p class="pricing-desc">Pay once, covered for a full year. Same everything as monthly, better value.</p> <ul class="pricing-features"> <li>Up to 5 children per family</li> <li>Math + Reading for every child</li> <li>Adaptive placement test included</li> <li>Kumon-style mastery gating</li> <li>Cross-device progress sync</li> <li>Parent progress dashboard</li> <li>ChoreRewards integration (optional)</li> <li>Works on any browser โ no download</li> </ul> <button class="pricing-cta" style="background:var(--green)" onclick="window.location.href='https://buy.stripe.com/00wbJ25WofPgfYS53Vew801'">Start Free 7-Day Trial โ</button> <p class="pricing-note">Then $89/year ยท That's $7.42/month ยท Cancel any time</p> </div> </div> </section> <!-- FAQ --> <section id="faq" style="background:var(--white); max-width:none; padding:96px 0;"> <div style="max-width:1100px; margin:0 auto; padding:0 24px;"> <div class="section-label reveal">FAQ</div> <h2 class="section-title reveal">Questions parents <em>actually ask</em></h2> <div class="faq-list"> <div class="faq-item"> <button class="faq-q" onclick="toggleFaq(this)">Do I need to be a Kumon member to use StarLearn? <span class="faq-arrow">โ</span></button> <div class="faq-a">No โ StarLearn works great as a standalone learning tool. The question banks and mastery system are designed to mirror Kumon's approach, but you don't need a Kumon subscription. That said, it's most powerful as a companion to Kumon practice.</div> </div> <div class="faq-item"> <button class="faq-q" onclick="toggleFaq(this)">How does the placement test work? <span class="faq-arrow">โ</span></button> <div class="faq-a">You enter your child's age and grade, and StarLearn picks a starting level. It then asks 3 questions. If your child gets all 3 right, it moves up a level. If they get 2/3, that's their placement. If they get 1 or fewer, it moves down a level. This continues until the right level is confirmed โ usually 8โ15 questions total.</div> </div> <div class="faq-item"> <button class="faq-q" onclick="toggleFaq(this)">What is the "2-session mastery" rule? <span class="faq-arrow">โ</span></button> <div class="faq-a">Kumon requires students to demonstrate consistent mastery before advancing โ not just a one-time good score. StarLearn mirrors this: your child must score 9 or 10 out of 10, within the target time, in two separate sessions before the next set unlocks. The level grid shows their current streak so they can see progress toward advancement.</div> </div> <div class="faq-item"> <button class="faq-q" onclick="toggleFaq(this)">What is ChoreRewards and do I need it? <span class="faq-arrow">โ</span></button> <div class="faq-a">ChoreRewards is a separate family app that lets kids earn points for chores and schoolwork, then redeem them for real rewards (screen time, outings, money, etc.). StarLearn can integrate with it so drill scores automatically earn points. But it's completely optional โ StarLearn works perfectly without it.</div> </div> <div class="faq-item"> <button class="faq-q" onclick="toggleFaq(this)">Does it work on phones and tablets? <span class="faq-arrow">โ</span></button> <div class="faq-a">Yes โ StarLearn runs entirely in the browser with no app download. It's fully responsive and works great on iPhones, Android phones, iPads, and laptops. Progress syncs automatically so your child can switch between devices mid-session.</div> </div> <div class="faq-item"> <button class="faq-q" onclick="toggleFaq(this)">Can I cancel my subscription? <span class="faq-arrow">โ</span></button> <div class="faq-a">Yes, any time โ no contracts, no cancellation fees. Your access continues until the end of your billing period. We'd love to know why you're leaving if you do, but we'll never make cancellation hard.</div> </div> <div class="faq-item"> <button class="faq-q" onclick="toggleFaq(this)">Is my child's data safe? <span class="faq-arrow">โ</span></button> <div class="faq-a">Yes. We store progress data in Supabase, a SOC 2 compliant database platform. We don't sell data, don't run ads, and never share your family's information with third parties. Your data is yours.</div> </div> </div> </div> </section> <!-- FINAL CTA --> <div class="final-cta"> <h2>Ready to make practice something they <em>want</em> to do?</h2> <p>Start your free 7-day trial today. No credit card required.</p> <a href="/app.html" class="cta-btn">๐ Get Started Free</a> </div> <!-- FOOTER --> <footer> <div class="footer-logo">Star<span>Learn</span></div> <p style="margin-bottom:8px;">Kumon-aligned practice for ambitious families.</p> <p><a href="/cdn-cgi/l/email-protection#523a373e3e3d12212633203e3733203c7c332222"><span class="__cf_email__" data-cfemail="deb6bbb2b2b19eadaabfacb2bbbfacb0f0bfaeae">[email protected]</span></a> ยท <a href="#" onclick="return false;">Privacy</a> ยท <a href="#" onclick="return false;">Terms</a></p> <p style="margin-top:16px;">ยฉ 2025 StarLearn ยท $9.99/month per family ยท Cancel any time</p> </footer> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"> // Show all reveal elements immediately (no lazy scroll animation) document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.reveal').forEach(el => el.classList.add('visible')); }); // Pricing plan toggle function setPlan(plan) { document.getElementById('plan-monthly').style.display = plan === 'monthly' ? '' : 'none'; document.getElementById('plan-annual').style.display = plan === 'annual' ? '' : 'none'; document.getElementById('ptog-monthly').classList.toggle('active', plan === 'monthly'); document.getElementById('ptog-annual').classList.toggle('active', plan === 'annual'); } // โโ TRIAL MODAL โโ function openTrialModal() { const modal = document.getElementById('trialModal'); modal.style.display = 'flex'; setTimeout(() => document.getElementById('trialEmail').focus(), 100); } function closeTrialModal() { document.getElementById('trialModal').style.display = 'none'; } // Close on backdrop click document.getElementById('trialModal').addEventListener('click', function(e) { if (e.target === this) closeTrialModal(); }); function submitTrial() { const email = document.getElementById('trialEmail').value.trim(); const err = document.getElementById('trialError'); if (!email || !email.includes('@')) { err.textContent = 'Please enter a valid email address.'; return; } err.textContent = ''; // In production: send email via Mailchimp/Buttondown API // For now: show the trial code immediately (FAMILY-FREE works for all trials) // Generate a simple unique-looking code const code = 'TRIAL-' + Math.random().toString(36).substring(2,6).toUpperCase(); // Log to console so you can see signups (replace with real email service later) console.log('Trial signup:', email, code); // Show success state document.getElementById('trialFormWrap').style.display = 'none'; document.getElementById('trialSuccess').style.display = 'block'; document.getElementById('trialCodeDisplay').textContent = 'FAMILY-FREE'; // In production you'd POST to a serverless function here to send the email // For now the code FAMILY-FREE works in the app for anyone } </script><script> // FAQ accordion function toggleFaq(btn) { const item = btn.parentElement; const wasOpen = item.classList.contains('open'); document.querySelectorAll('.faq-item').forEach(i => i.classList.remove('open')); if (!wasOpen) item.classList.add('open'); } // Scroll reveal - show elements as they enter viewport if ('IntersectionObserver' in window) { const observer = new IntersectionObserver(entries => { entries.forEach(e => { if (e.isIntersecting) e.target.classList.add('visible'); }); }, { threshold: 0.06, rootMargin: '0px 0px -20px 0px' }); document.querySelectorAll('.reveal').forEach(el => observer.observe(el)); } else { document.querySelectorAll('.reveal').forEach(el => el.classList.add('visible')); } // Show elements already in view on load setTimeout(() => { document.querySelectorAll('.reveal').forEach(el => { const rect = el.getBoundingClientRect(); if (rect.top < window.innerHeight) el.classList.add('visible'); }); }, 200); <!-- TRIAL MODAL --> <div id="trialModal" style="display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.55);align-items:center;justify-content:center;padding:20px;"> <div style="background:#fff;border-radius:20px;padding:36px 32px;max-width:460px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,0.25);position:relative;"> <button onclick="closeTrialModal()" style="position:absolute;top:16px;right:16px;background:none;border:none;font-size:1.4rem;cursor:pointer;color:#999;">โ</button> <div style="text-align:center;margin-bottom:24px;"> <div style="font-size:2.5rem;margin-bottom:8px;">โญ</div> <h2 style="font-family:'Fraunces',serif;font-size:1.6rem;color:#0f1f3d;margin:0 0 8px;">Start your free 7-day trial</h2> <p style="color:#6b7280;font-size:0.9rem;margin:0;">No credit card required. Get your access code instantly.</p> </div> <div id="trialFormWrap"> <div style="margin-bottom:16px;"> <label style="display:block;font-size:0.8rem;font-weight:700;color:#0f1f3d;letter-spacing:0.05em;margin-bottom:6px;">YOUR EMAIL</label> <input id="trialEmail" type="email" placeholder="parent@email.com" style="width:100%;padding:12px 14px;border:2px solid #e0d8cc;border-radius:10px;font-size:1rem;font-family:inherit;outline:none;box-sizing:border-box;" onkeydown="if(event.key==='Enter')submitTrial()"/> </div> <p id="trialError" style="color:#e84040;font-size:0.85rem;margin:0 0 12px;min-height:20px;"></p> <button onclick="submitTrial()" style="width:100%;padding:14px;background:#f5a623;border:none;border-radius:12px;font-size:1rem;font-weight:800;color:#fff;cursor:pointer;font-family:inherit;"> Get My Access Code โ </button> <p style="text-align:center;font-size:0.8rem;color:#9ca3af;margin:12px 0 0;">Then $9.99/month ยท Cancel any time</p> </div> <div id="trialSuccess" style="display:none;text-align:center;"> <div style="font-size:3rem;margin-bottom:12px;">๐</div> <h3 style="font-family:'Fraunces',serif;font-size:1.3rem;color:#0f1f3d;margin:0 0 8px;">You're in!</h3> <p style="color:#6b7280;margin:0 0 16px;">Your access code is:</p> <div style="background:#fef3d8;border:2px solid #f5a623;border-radius:10px;padding:14px;margin-bottom:20px;"> <span id="trialCodeDisplay" style="font-family:monospace;font-size:1.4rem;font-weight:800;color:#0f1f3d;letter-spacing:0.1em;"></span> </div> <a href="/app.html" style="display:block;padding:14px;background:#f5a623;border-radius:12px;font-size:1rem;font-weight:800;color:#fff;text-decoration:none;text-align:center;"> Open StarLearn โ </a> <p style="font-size:0.8rem;color:#9ca3af;margin-top:10px;">We've also sent this code to your email.</p> </div> </div> </div> n