@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100;0,9..40,200;0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,100;1,9..40,200;1,9..40,300;1,9..40,400;1,9..40,500&family=JetBrains+Mono:wght@400;500&display=swap";:root{--blue: #1F77B4;--blue-dark: #155a8c;--blue-light: #E8F2FB;--green: #006B3F;--green-dark: #004D2C;--green-light: #E6F4ED;--kenya-red: #CE1126;--kenya-red-light: #FDEAED;--gold: #E8A020;--gold-light: #FEF4E2;--ink: #1a1a1a;--ink-soft: #5C6473;--paper: #FFFFFF;--surface: #F5F7FA;--line: rgba(0, 0, 0, .08);--line-strong: rgba(0, 0, 0, .18);--shadow-sm: 0 1px 6px rgba(0, 0, 0, .06);--shadow: 0 2px 16px rgba(0, 0, 0, .08);--shadow-md: 0 4px 28px rgba(0, 0, 0, .11);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius: 12px;--radius-lg: 20px;--font-display: "DM Sans", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 4rem;--space-xl: 8rem;--max-w: 1140px;--terracotta: #CE1126;--ochre: #E8A020;--paper-deep: #F0F3F7;--tableau-blue: #1F77B4;--forest: #006B3F}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:15px;line-height:1.65;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{max-width:100%;display:block}h1,h2,h3{font-family:var(--font-display);font-weight:200;letter-spacing:-.02em;color:var(--ink);line-height:1.05}h1{font-size:clamp(2.8rem,6.5vw,6rem);line-height:1.06}h2{font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.12}h3{font-size:clamp(1.3rem,2vw,1.75rem);font-weight:300}h4{font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1.4;color:var(--ink)}a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--blue);transition:color .18s}a:hover{color:var(--blue)}.eyebrow{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.2em;color:var(--green);display:block;margin-bottom:.75rem}.page-header{background:var(--surface);padding:var(--space-lg) 0 var(--space-md)}.page-header--tabs{padding-bottom:0}.page-hero{padding:var(--space-lg) 0 var(--space-md);margin-bottom:var(--space-md)}.lede{font-size:1.1rem;color:var(--ink-soft);max-width:55ch;margin-top:1rem;line-height:1.65}.label{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.2em;color:var(--ink-soft);display:block}.label--accent,.label--blue{color:var(--blue)}.label--green{color:var(--green)}.label--red{color:var(--kenya-red)}.label--gold{color:var(--gold)}.tag{display:inline-block;font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;padding:.25em .7em;border-radius:var(--radius-sm);border:1px solid var(--line-strong);color:var(--ink-soft);background:var(--surface)}.tag--free{border-color:var(--green);color:var(--green);background:var(--green-light)}.tag--paid{border-color:var(--kenya-red);color:var(--kenya-red);background:var(--kenya-red-light)}.serif-italic{font-family:var(--font-display);font-style:italic;font-weight:300}hr.divider-strong{border:none;border-top:2px solid var(--line-strong);margin:var(--space-md) 0}.container{max-width:var(--max-w);margin:0 auto;padding:0 clamp(1.25rem,5vw,6rem)}main{padding-top:72px}.btn{display:inline-flex;align-items:center;gap:.5em;padding:.78em 1.75em;font-family:var(--font-body);font-size:.9rem;font-weight:600;text-decoration:none;border-radius:50px;border:2px solid var(--blue);background:var(--blue);color:#fff;transition:background .2s,border-color .2s,color .2s,transform .18s,box-shadow .18s;cursor:pointer;letter-spacing:.01em}.btn:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px #1f77b44d}.btn--ghost{background:transparent;color:var(--blue)}.btn--ghost:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}.btn--green{background:var(--green);border-color:var(--green)}.btn--green:hover{background:var(--green-dark);border-color:var(--green-dark);box-shadow:0 6px 20px #006b3f4d}.btn--white{background:#fff;border-color:#fff;color:var(--ink)}.btn--white:hover{background:var(--blue-light);border-color:var(--blue-light);color:var(--blue);box-shadow:none;transform:translateY(-2px)}.btn--sm{padding:.5em 1.2em;font-size:.825rem}.card{background:var(--paper);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);transition:box-shadow .3s,transform .3s,border-color .3s;position:relative}.card:hover{box-shadow:var(--shadow-lg),0 0 0 1px #1f77b42e,0 0 32px #1f77b414;transform:translateY(-4px);border-color:#1f77b440}.section{padding:6rem 0}.section--surface{background:var(--surface)}.section--blue{background:var(--blue-light)}.section--green{background:var(--green-light)}.section--dark{background:var(--green-dark);color:#fff}.section--dark h2,.section--dark h3{color:#fff}.section--dark p{color:#ffffffb8}.section-head{margin-bottom:3rem}.section-head .label{margin-bottom:.75rem}.section-head h2{margin-bottom:0}.section-lede{font-size:1rem;color:var(--ink-soft);margin-top:.75rem;line-height:1.65}.section-more{margin-top:2.5rem;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.15em}.section-more a{text-decoration-color:transparent;transition:color .18s,text-decoration-color .18s}.section-more a:hover{color:var(--blue);text-decoration-color:var(--blue)}.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:none}.d1{transition-delay:.08s}.d2{transition-delay:.18s}.d3{transition-delay:.28s}.d4{transition-delay:.38s}.scroll-progress{position:fixed;top:4px;left:0;height:3px;width:0%;background:linear-gradient(to right,#1a1a1a,#ce1126 45%,#006b3f);z-index:300;pointer-events:none;transform-origin:left;will-change:width}#cursor-glow{position:fixed;top:0;left:0;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(31,119,180,.055) 0%,transparent 65%);pointer-events:none;z-index:1;transform:translate(-50%,-50%);opacity:0;transition:opacity .4s;will-change:transform}@keyframes wave-flow{to{background-position-x:120px}}@keyframes kenya-flow{to{background-position-x:480px}}.wavy-word{position:relative;white-space:nowrap}.wavy-word:after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M0,7 C20,0 40,14 60,7 C80,0 100,14 120,7' fill='none' stroke='%231F77B4' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");background-size:120px 14px;background-repeat:repeat-x;pointer-events:none;clip-path:inset(0 100% 0 0);transition:clip-path .9s cubic-bezier(.22,1,.36,1) .3s;animation:wave-flow 5s linear infinite}.reveal.in .wavy-word:after{clip-path:inset(0 0% 0 0)}.wavy-word--green:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M0,7 C20,0 40,14 60,7 C80,0 100,14 120,7' fill='none' stroke='%23006B3F' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E")}.wavy-word--gold:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14'%3E%3Cpath d='M0,7 C20,0 40,14 60,7 C80,0 100,14 120,7' fill='none' stroke='%23E8A020' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E")}.wavy-word--kenya:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 14'%3E%3Cdefs%3E%3ClinearGradient id='kg3' x1='0' y1='0' x2='1' y2='0'%3E%3Cstop offset='0' stop-color='%23000000'/%3E%3Cstop offset='0.30' stop-color='%23FFFFFF'/%3E%3Cstop offset='0.36' stop-color='%23CE1126'/%3E%3Cstop offset='0.64' stop-color='%23CE1126'/%3E%3Cstop offset='0.70' stop-color='%23FFFFFF'/%3E%3Cstop offset='0.76' stop-color='%23006B3F'/%3E%3Cstop offset='1' stop-color='%23000000'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0,7 C20,0 40,14 60,7 C80,0 100,14 120,7 C140,0 160,14 180,7 C200,0 220,14 240,7 C260,0 280,14 300,7 C320,0 340,14 360,7 C380,0 400,14 420,7 C440,0 460,14 480,7' fill='none' stroke='url(%23kg3)' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");background-size:480px 14px;animation:kenya-flow 5s linear infinite}.blob{position:absolute;border-radius:60% 40% 30% 70%/60% 30% 70% 40%;pointer-events:none;z-index:0;opacity:.06;animation:blob-morph 10s ease-in-out infinite;will-change:border-radius}@keyframes blob-morph{0%,to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%}25%{border-radius:30% 60% 70% 40%/50% 60% 30%}50%{border-radius:50% 50% 30% 70%/30% 70% 60% 40%}75%{border-radius:40% 60% 60% 30%/70% 30% 50% 50%}}.blob--blue{background:var(--blue);animation-delay:0s}.blob--green{background:var(--green);animation-delay:-3s}.blob--gold{background:var(--gold);animation-delay:-6s}.viz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.viz-card{overflow:hidden;padding:0}.wc-card{background:transparent;border:none;box-shadow:none;padding:0;display:flex;flex-direction:column}.wc-card .viz-thumb{border-radius:var(--radius);box-shadow:0 2px 14px #0000001a}.wc-card .viz-info{padding:.85rem .1rem .25rem;display:flex;flex-direction:column;flex:1}.wc-card .viz-title{font-size:.92rem}.wc-card .viz-meta-row{flex:1}.wc-card .viz-actions{margin-top:auto;padding-top:.5rem}.viz-thumb-link{display:block;text-decoration:none}.viz-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--surface)}.viz-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.viz-thumb-link:hover .viz-thumb img{transform:scale(1.04)}.viz-thumb-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--blue-light),var(--green-light))}.viz-overlay{position:absolute;inset:0;background:#1f77b400;display:flex;align-items:center;justify-content:center;transition:background .3s}.viz-thumb-link:hover .viz-overlay{background:#1f77b499}.viz-overlay-label{color:#fff;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;opacity:0;transition:opacity .3s;white-space:nowrap}.viz-thumb-link:hover .viz-overlay-label{opacity:1}.viz-info{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.4rem}.viz-label{display:inline-block;font-family:var(--font-mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.12em;background:var(--blue-light);color:var(--blue);padding:.18em .6em;border-radius:50px;align-self:flex-start}.viz-title{font-family:var(--font-display);font-size:1.05rem;font-weight:400;line-height:1.3;color:var(--ink)}.viz-meta-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.viz-author{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.viz-month{font-family:var(--font-mono);font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);opacity:.6}.viz-month:before{content:"·";margin-right:.6rem}.viz-actions{padding-top:.35rem}.viz-link{display:inline-flex;align-items:center;gap:.25rem;font-size:.82rem;font-weight:600;color:var(--blue);text-decoration:none;border-bottom:1.5px solid var(--blue);padding-bottom:1px;transition:color .2s,border-color .2s,gap .2s}.viz-link:hover{color:var(--green);border-color:var(--green);gap:.4rem}.viz-arrow{transition:transform .2s}.viz-link:hover .viz-arrow{transform:translate(2px,-2px)}@media (max-width: 900px){.viz-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.viz-grid{grid-template-columns:1fr}}.wave-sep{display:block;height:60px;overflow:hidden;line-height:0;pointer-events:none;flex-shrink:0}.wave-sep svg{width:100%;height:100%;display:block}@media (max-width: 768px){body{font-size:15px}.section{padding:3.5rem 0}.section-head{margin-bottom:2rem}.page-hero{padding-top:2.5rem!important;padding-bottom:1.5rem!important}}@media (max-width: 480px){.section{padding:2.5rem 0}.section-head{margin-bottom:1.5rem}}.flag-bar[data-astro-cid-37fxchfa]{position:fixed;top:0;left:0;right:0;z-index:200;height:4px;background:linear-gradient(to right,#1a1a1a 33.33%,#ce1126 33.33% 66.66%,#006b3f 66.66%)}.site-header[data-astro-cid-37fxchfa]{position:fixed;top:4px;left:0;right:0;z-index:100;background:#fffffff0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav-inner[data-astro-cid-37fxchfa]{display:flex;align-items:center;justify-content:space-between;padding:.85rem clamp(1.25rem,5vw,6rem);gap:1.5rem}.logo[data-astro-cid-37fxchfa]{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--ink);flex-shrink:0}.logo-flag[data-astro-cid-37fxchfa]{font-size:1.5rem;line-height:1}.logo-name[data-astro-cid-37fxchfa]{font-family:var(--font-display);font-size:1.2rem;font-weight:500;letter-spacing:-.02em;display:block;color:var(--blue)}.logo-sub[data-astro-cid-37fxchfa]{font-family:var(--font-mono);font-size:.56rem;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);display:block}.nav-links[data-astro-cid-37fxchfa]{display:flex;align-items:center;gap:2rem}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:not(.btn){font-size:.875rem;font-weight:500;color:var(--ink-soft);text-decoration:none;transition:color .18s}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:not(.btn):hover{color:var(--blue)}.hamburger[data-astro-cid-37fxchfa]{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;flex-shrink:0}.hamburger[data-astro-cid-37fxchfa] span[data-astro-cid-37fxchfa]{display:block;width:24px;height:2px;background:var(--ink);border-radius:2px;transition:transform .25s,opacity .25s;transform-origin:center}.hamburger[data-astro-cid-37fxchfa].is-open span[data-astro-cid-37fxchfa]:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger[data-astro-cid-37fxchfa].is-open span[data-astro-cid-37fxchfa]:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger[data-astro-cid-37fxchfa].is-open span[data-astro-cid-37fxchfa]:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.site-footer[data-astro-cid-37fxchfa]{background:var(--green-dark);color:#ffffffd9;padding:4.5rem 0 2rem}.footer-inner[data-astro-cid-37fxchfa]{display:grid;grid-template-columns:2fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:2rem}.footer-name[data-astro-cid-37fxchfa]{font-family:var(--font-display);font-size:1.7rem;font-weight:300;letter-spacing:-.02em;display:block;margin-bottom:.7rem;color:#fff}.footer-tagline[data-astro-cid-37fxchfa]{font-size:.88rem;color:#fff9;line-height:1.65;max-width:34ch}.footer-socials[data-astro-cid-37fxchfa]{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.4rem}.social-link[data-astro-cid-37fxchfa]{font-size:.78rem;color:#ffffffa6;text-decoration:none;border:1px solid rgba(255,255,255,.25);padding:.3em .85em;border-radius:50px;transition:background .18s,color .18s,border-color .18s}.social-link[data-astro-cid-37fxchfa]:hover{background:#ffffff26;color:#fff;border-color:#ffffff80}.footer-col-title[data-astro-cid-37fxchfa]{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.2em;color:#ffffff73;display:block;margin-bottom:1rem}.footer-col[data-astro-cid-37fxchfa] ul[data-astro-cid-37fxchfa]{list-style:none;display:flex;flex-direction:column;gap:.6rem}.footer-col[data-astro-cid-37fxchfa] ul[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]{font-size:.875rem;color:#ffffffa6;text-decoration:none;transition:color .18s}.footer-col[data-astro-cid-37fxchfa] ul[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:hover{color:#fff}.footer-base[data-astro-cid-37fxchfa]{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:#ffffff4d}@media (max-width: 768px){.hamburger[data-astro-cid-37fxchfa]{display:flex}.nav-links[data-astro-cid-37fxchfa]{display:none;position:fixed;top:0;left:0;right:0;background:var(--paper);padding:84px 1.5rem 2rem;flex-direction:column;align-items:stretch;gap:0;z-index:99;box-shadow:var(--shadow-lg)}.nav-links[data-astro-cid-37fxchfa].is-open{display:flex}.nav-links[data-astro-cid-37fxchfa] a[data-astro-cid-37fxchfa]:not(.btn){padding:1rem 0;border-bottom:1px solid var(--line);font-size:1rem;color:var(--ink)}.footer-inner[data-astro-cid-37fxchfa]{grid-template-columns:1fr;gap:2.25rem}.footer-base[data-astro-cid-37fxchfa]{flex-direction:column;gap:.5rem}}
