:root{--ink:#17142a;--paper:#fff9ea;--white:#fffef8;--yellow:#ffd43b;--orange:#ff7b36;--red:#e9435c;--violet:#6d4fe8;--blue:#2589e8;--green:#168c5d;--line:rgba(23,20,42,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",system-ui,sans-serif;font-size:16px;line-height:1.55;overflow-x:hidden}a{color:inherit}img{max-width:100%;display:block}body:before{content:"";position:fixed;z-index:-2;inset:0;background:radial-gradient(circle at 5% 10%,#ffd43b50,transparent 24%),radial-gradient(circle at 95% 26%,#ff7b3638,transparent 24%),radial-gradient(circle at 42% 92%,#6d4fe824,transparent 27%)}
.site-header,main,footer{width:min(1240px,calc(100% - 44px));margin-inline:auto}.site-header{height:84px;display:flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:800;font-size:1.08rem}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:var(--ink);color:var(--yellow);font-family:"Fraunces",serif;box-shadow:5px 5px 0 var(--yellow)}nav{display:flex;align-items:center;gap:26px}nav a{text-decoration:none;font-weight:700;font-size:.94rem}nav a:hover{text-decoration:underline;text-underline-offset:5px}.nav-cta{border:2px solid var(--ink);border-radius:999px;padding:9px 15px;box-shadow:3px 3px 0 var(--ink)}
.hero{min-height:690px;padding:72px 0 82px;display:grid;grid-template-columns:1.03fr .97fr;align-items:center;gap:68px}.kicker,.overline{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:800}.kicker{display:flex;align-items:center;gap:9px;color:#433cb6}.kicker span{width:29px;height:4px;border-radius:3px;background:linear-gradient(90deg,var(--red),var(--yellow))}.hero h1{font:800 clamp(3.8rem,7.1vw,7.2rem)/.88 "Fraunces",serif;letter-spacing:-.058em;margin:24px 0 30px;max-width:760px}.hero h1 em{color:var(--red);font-weight:700}.hero-lede{max-width:680px;margin:0;color:#565169;font-size:clamp(1.08rem,1.6vw,1.32rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:13px;border-radius:999px;padding:0 22px;text-decoration:none;font-weight:800;transition:transform .18s}.button.primary{background:var(--ink);color:white;box-shadow:6px 6px 0 var(--yellow)}.button.ghost{border:2px solid var(--ink);background:#fff9}.button.light{background:white;color:var(--ink);box-shadow:5px 5px 0 var(--yellow)}.button:hover{transform:translateY(-2px)}.hero-proof{display:flex;gap:26px;list-style:none;padding:0;margin:40px 0 0}.hero-proof li{border-left:4px solid var(--yellow);padding-left:11px}.hero-proof b,.hero-proof span{display:block}.hero-proof span{color:#6a6578;font-size:.82rem}
.conversation-stage{position:relative;min-height:520px;border:2px solid var(--ink);border-radius:44px;background:linear-gradient(150deg,#373073,#17142a 70%);box-shadow:13px 13px 0 var(--orange);overflow:hidden}.conversation-stage:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff0d 1px,transparent 1px),linear-gradient(90deg,#ffffff0d 1px,transparent 1px);background-size:34px 34px}.sun-disc{position:absolute;width:250px;height:250px;border-radius:50%;right:-40px;top:-54px;background:var(--yellow);box-shadow:0 0 0 25px #ffd43b22,0 0 0 55px #ffd43b12}.speech{position:absolute;min-width:190px;border-radius:22px;padding:14px 18px;background:white;box-shadow:0 13px 30px #0005;transform:rotate(-2deg)}.speech small,.speech strong{display:block}.speech small{text-transform:uppercase;letter-spacing:.13em;font-size:.65rem;font-weight:800;color:#6f687a}.speech strong{font:700 1.25rem "Fraunces",serif;margin-top:3px}.speech-one{left:8%;top:10%;border-bottom-left-radius:5px}.speech-two{right:8%;top:31%;transform:rotate(2deg);border-bottom-right-radius:5px}.speech-three{left:10%;top:50%;transform:rotate(1deg);border-bottom-left-radius:5px}.speech-four{right:9%;top:69%;transform:rotate(-2deg);border-bottom-right-radius:5px}.reply{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:max-content;border-radius:999px;padding:11px 18px 11px 11px;background:var(--red);color:white;box-shadow:0 10px 26px #0005}.reply>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:white;font-size:1.2rem}.reply small,.reply strong{display:block}.reply small{font-size:.7rem;opacity:.8}.reply strong{font-size:.95rem}
.language-section,.kids-section,.method-section{padding:94px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:34px}.section-heading h2,.kids-copy h2,.community-banner h2{font:800 clamp(2.5rem,4.8vw,4.8rem)/.98 "Fraunces",serif;letter-spacing:-.045em;margin:8px 0 0}.section-heading>p{max-width:510px;margin:0;color:#625d70}.overline{color:#4c43c4}.language-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.language-card{position:relative;min-height:330px;display:flex;flex-direction:column;overflow:hidden;border:2px solid var(--ink);border-radius:28px;padding:27px;text-decoration:none;box-shadow:7px 7px 0 var(--ink);transition:transform .2s,box-shadow .2s}.language-card:hover{transform:translate(-2px,-4px);box-shadow:10px 12px 0 var(--ink)}.language-card small{text-transform:uppercase;letter-spacing:.12em;font-weight:800}.language-card h3{font:800 clamp(2.1rem,3.6vw,3.35rem)/.95 "Fraunces",serif;letter-spacing:-.04em;margin:auto 0 12px}.language-card p{max-width:320px;margin:0 0 20px}.language-card b{font-size:.87rem}.language-script{position:absolute;right:18px;top:4px;font:800 7rem/1 "Fraunces",serif;opacity:.16}.language-card.twi{background:#ffd43b}.language-card.yoruba{background:#ff806b}.language-card.wolof{background:#55bcef}.language-card.mdw{background:#d6b178}.language-card.kikongo{background:#6ed19d}.language-card.swahili{background:#9c83f7}.language-card.coming{border-style:dashed}.hiero{font-family:serif}
.kids-section{position:relative;display:grid;grid-template-columns:.7fr 1.3fr;gap:60px;align-items:center}.kids-section:before{content:"";position:absolute;z-index:-1;left:50%;width:100vw;transform:translateX(-50%);inset-block:28px;background:#201c43}.kids-copy{color:white}.kids-copy .overline{color:var(--yellow)}.kids-copy h2{font-size:clamp(2.7rem,4.7vw,4.8rem)}.kids-copy>p:not(.overline){color:#d8d4e7;font-size:1.06rem}.kids-badges{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.kids-badges span{border:1px solid #ffffff35;border-radius:999px;background:#ffffff12;padding:8px 12px;font-size:.79rem;font-weight:700}.mascot-cast{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,230px);gap:13px}.mascot-card{position:relative;overflow:hidden;border-radius:24px;min-width:0;box-shadow:0 12px 28px #0005}.mascot-card img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.mascot-card div{position:absolute;left:12px;right:12px;bottom:12px;border-radius:13px;background:#fffefaed;color:var(--ink);padding:8px 10px;backdrop-filter:blur(8px)}.mascot-card strong,.mascot-card span{display:block}.mascot-card strong{font-family:"Fraunces",serif;font-size:1.05rem}.mascot-card span{font-size:.69rem;font-weight:700}.ananse{grid-column:span 2;background:#ffd43b}.gainde{grid-column:span 2;background:#f29c38}.ijapa{grid-column:span 2;background:#66b9e9}.aset{grid-column:span 2;background:#dcbb82}.nlumba{grid-column:span 2;background:#72d5a6}.sungura{grid-column:span 2;background:#9c83f7}
.method-section{padding-bottom:120px}.section-heading.compact{align-items:center}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;list-style:none;padding:0;margin:0}.method-grid li{min-height:290px;border:2px solid var(--ink);border-radius:28px;padding:28px;background:var(--white)}.method-grid li:nth-child(1){box-shadow:7px 7px 0 var(--blue)}.method-grid li:nth-child(2){box-shadow:7px 7px 0 var(--red)}.method-grid li:nth-child(3){box-shadow:7px 7px 0 var(--green)}.method-grid li>span{font:800 2.6rem "Fraunces",serif;color:#8d8799}.method-grid h3{font:800 1.75rem/1.05 "Fraunces",serif;margin:55px 0 12px}.method-grid p{margin:0;color:#625d70}.community-banner{display:flex;align-items:center;justify-content:space-between;gap:34px;margin-bottom:80px;border-radius:34px;background:linear-gradient(110deg,var(--red),var(--orange));color:white;padding:46px}.community-banner .overline{color:#fff8b8}.community-banner h2{max-width:800px;font-size:clamp(2.2rem,4vw,4rem)}footer{display:flex;justify-content:space-between;gap:24px;padding:28px 0 42px;border-top:1px solid var(--line);color:#696374;font-size:.9rem}
@media(max-width:980px){.hero{grid-template-columns:1fr;gap:30px;padding-top:60px}.conversation-stage{min-height:480px}.language-grid{grid-template-columns:repeat(2,1fr)}.kids-section{grid-template-columns:1fr;gap:30px}.mascot-cast{max-width:700px;width:100%;margin:auto}.section-heading{align-items:flex-start;flex-direction:column}.method-grid{grid-template-columns:1fr}.method-grid li{min-height:220px}.method-grid h3{margin-top:30px}}
@media(max-width:700px){.site-header,main,footer{width:min(100% - 28px,1240px)}.site-header{height:auto;min-height:76px;align-items:flex-start;padding:16px 0}.brand>span:last-child{display:none}nav{gap:12px;flex-wrap:wrap;justify-content:flex-end}nav a{font-size:.79rem}nav a:nth-child(3){display:none}.nav-cta{padding:6px 10px}.hero{min-height:0;padding:55px 0}.hero h1{font-size:clamp(3.25rem,16vw,5rem)}.hero-proof{flex-direction:column;gap:12px}.conversation-stage{min-height:500px;border-radius:30px}.speech{min-width:170px;padding:11px 14px}.language-section,.kids-section,.method-section{padding:70px 0}.language-grid{grid-template-columns:1fr}.language-card{min-height:290px}.mascot-cast{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,210px)}.mascot-card,.ananse,.gainde,.ijapa,.aset,.nlumba,.sungura{grid-column:span 1}.community-banner{align-items:flex-start;flex-direction:column;padding:30px 24px}footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.language-card,.button{transition:none}}