:root{--font-body:"Manrope", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-display:"Space Grotesk", "Avenir Next Condensed", "Arial Narrow", "Segoe UI", sans-serif;--bg-start:#f8faff;--bg-mid:#fbfcff;--bg-end:#f5f7fc;--panel:#ffffffd1;--panel-strong:#fffffff5;--line:#16233b14;--line-strong:#16233b21;--text:#101828;--muted:#667085;--accent:#4f46e5;--accent-strong:#ff7a59;--button-text:#f8fafc;--hero-span:#536482;--highlight-text:#344054;--portrait-bg:#dfe8ff;--signal-bg:#ffffffe0;--signal-border:#16233b14;--surface-tint:#6366f10f;--image-wash:#e9efff;--logo-surface:#fffffffa;--logo-line:#16233b1a;--aurora-one:#6366f10d;--aurora-two:#ff7a590a;--shadow:0 24px 70px #10182814;--radius-lg:28px;--radius-md:18px;--max-width:1180px}[data-theme=dark]{--bg-start:#09101d;--bg-mid:#08111f;--bg-end:#060d18;--panel:#0c1726b8;--panel-strong:#0b1828f0;--line:#a4bbd424;--line-strong:#a4bbd438;--text:#f2f5f9;--muted:#9fb2c7;--accent:#70e1c8;--accent-strong:#f6b75a;--button-text:#04111f;--hero-span:#d8dfeb;--highlight-text:#d6e1ed;--portrait-bg:#0e1a2d;--signal-bg:#091321c2;--signal-border:#a4bbd424;--surface-tint:#ffffff0f;--image-wash:#0d192d;--logo-surface:#f8fafcfa;--logo-line:#a0aec02e;--aurora-one:#70e1c82e;--aurora-two:#f6b75a24;--shadow:0 24px 80px #03091273}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 18% 0%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 32%), radial-gradient(circle at 82% 10%, color-mix(in srgb, var(--accent-strong) 5%, transparent), transparent 24%), linear-gradient(180deg, var(--bg-start) 0%, var(--bg-mid) 55%, var(--bg-end) 100%);min-width:320px;color:var(--text);font-family:var(--font-body), sans-serif;margin:0;transition:background .22s,color .22s}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.page-shell{padding:24px;position:relative;overflow:clip}.hero,.section-grid{animation:.72s cubic-bezier(.2,.8,.2,1) both section-rise}.aurora{pointer-events:none;filter:blur(90px);opacity:.22;position:fixed;inset:auto}.aurora-one{background:var(--aurora-one);width:180px;height:180px;top:220px;right:-180px}.aurora-two{background:var(--aurora-two);width:200px;height:200px;bottom:120px;left:-140px}.topbar,.hero,.section-grid,.contact-card{width:min(100%, var(--max-width));margin:0 auto}.topbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:color-mix(in srgb, var(--panel-strong) 86%, transparent);border:1px solid var(--line);border-radius:999px;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex;position:sticky;top:16px;box-shadow:0 12px 32px #1018280d}.topbar-actions{align-items:center;gap:14px;min-width:0;display:flex}.brand,.hero h1,.section-heading h2,.skill-card h3,.project-content h3,.timeline-meta h3,.contact-grid strong{font-family:var(--font-display), sans-serif}.brand{letter-spacing:.08em;text-transform:uppercase;font-size:1rem;font-weight:700}.topnav{scrollbar-width:none;-ms-overflow-style:none;background:#ffffff75;border-radius:999px;flex-wrap:nowrap;justify-content:flex-end;gap:18px;min-width:0;padding:6px;display:flex;overflow-x:auto}.topnav::-webkit-scrollbar{display:none}.mobile-topnav{display:none}.topnav a{color:var(--muted);border-radius:999px;padding:8px 12px;font-size:.94rem;font-weight:500}.topnav a:hover,.contact-grid a:hover,.project-card:hover h3{color:var(--text)}.topnav a:hover{background:#ffffffd6}.hero{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start;gap:42px;min-height:auto;padding:42px 0 36px;display:grid}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;margin:0 0 14px;font-size:.78rem;font-weight:700}.hero h1{letter-spacing:-.06em;text-wrap:balance;max-width:12ch;margin:0;font-size:clamp(3.2rem,8vw,6.4rem);line-height:.92}.hero h1 span{color:var(--hero-span);display:block}.hero-pill{color:#4c63a6;background:#ffffffc7;border:1px solid #4f46e51f;border-radius:999px;align-items:center;margin-bottom:18px;padding:10px 14px;font-size:.9rem;font-weight:600;display:inline-flex;box-shadow:0 10px 24px #1018280a}.hero-text,.about-panel p,.timeline-copy p,.contact-copy,.project-content p{color:var(--muted);line-height:1.8}.hero-text{max-width:62ch;margin:26px 0 0;font-size:1.08rem}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:28px;display:flex}.button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:52px;padding:0 24px;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.button:hover,.project-card:hover,.timeline-card:hover,.metric-card:hover,.skill-card:hover,.contact-grid a:hover{transform:translateY(-2px)}.button-primary{background:linear-gradient(135deg, #5b53ff, var(--accent));color:var(--button-text);font-weight:700;box-shadow:0 10px 24px #4f46e533}.button-secondary{border-color:var(--line-strong);color:var(--text);background:#ffffffbd}.hero-highlights{gap:12px;margin:28px 0 0;padding:0;list-style:none;display:grid}.hero-highlights li{color:var(--highlight-text);padding-left:18px;position:relative}.hero-highlights li:before{content:"";background:linear-gradient(135deg, var(--accent), var(--accent-strong));border-radius:50%;width:8px;height:8px;position:absolute;top:11px;left:0}.hero-visual{justify-content:center;display:flex}.portrait-card{width:min(100%,500px);position:relative}.portrait-card:before{content:"";border:1px solid var(--line);background:linear-gradient(180deg, var(--surface-tint), transparent);border-radius:32px;position:absolute;inset:-14px 18px 92px -18px}.portrait-frame{aspect-ratio:.92;background:linear-gradient(180deg, #ffffff85, transparent), var(--portrait-bg);box-shadow:var(--shadow);border-radius:28px;position:relative;overflow:hidden}.portrait-frame img{object-fit:cover;object-position:center 18%}.portrait-caption{z-index:2;border:1px solid var(--line);background:#ffffffeb;border-radius:18px;width:calc(100% - 32px);margin:-46px auto 0;padding:18px 20px;position:relative;box-shadow:0 16px 34px #10182814}.portrait-caption span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:.8rem;font-weight:700;display:block}.portrait-caption strong{font-family:var(--font-display), sans-serif;margin-bottom:8px;font-size:1.05rem;line-height:1.35;display:block}.portrait-caption p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.6}.signal-card p{color:var(--muted);margin:0 0 6px;font-size:.88rem}.signal-card strong{line-height:1.5}.section-grid{padding:88px 0 0}.section-heading{max-width:740px;margin-bottom:32px}.section-heading h2{letter-spacing:-.05em;margin:0;font-size:clamp(2rem,4vw,3.4rem);line-height:1.04}.about-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);gap:18px;padding:28px;display:grid;box-shadow:0 12px 32px #1018280d}.about-panel p{margin:0}.metrics,.skills-layout,.projects-grid,.contact-grid,.case-study-grid,.education-grid,.cert-grid{gap:18px;display:grid}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px}.metric-card,.skill-card,.project-card,.timeline-card,.contact-grid a{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:transform .18s,border-color .18s,background .18s,box-shadow .18s}.metric-card{border-radius:var(--radius-md);padding:24px;box-shadow:0 10px 28px #1018280d}.metric-card strong{font-family:var(--font-display), sans-serif;letter-spacing:-.06em;margin-bottom:8px;font-size:2.6rem;display:block}.metric-card span{color:var(--muted)}.skills-layout{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px}.skill-card{border-radius:var(--radius-md);padding:24px;box-shadow:0 10px 28px #1018280d}.skill-card h3,.project-content h3,.timeline-meta h3{margin:0 0 16px;font-size:1.35rem}.tag-list{flex-wrap:wrap;gap:10px;display:flex}.tag{color:#475467;background:#f3f5f8;border-radius:999px;padding:9px 12px;font-size:.88rem;font-weight:600}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{border-radius:24px;position:relative;overflow:hidden;box-shadow:0 12px 36px #1018280f}.project-card:before{content:"";background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 14%, transparent), transparent 40%), linear-gradient(180deg, transparent 34%, color-mix(in srgb, var(--accent-strong) 10%, transparent));opacity:0;pointer-events:none;z-index:1;transition:opacity .18s;position:absolute;inset:0}.project-image-wrap{aspect-ratio:1.35;background:var(--image-wash);padding:18px;position:relative;overflow:hidden}.project-image-wrap img{object-fit:cover;object-position:var(--project-image-position,center);transform:var(--project-image-transform,none);transition:transform .26s,filter .26s}.project-image-wrap.project-image-contain img{object-fit:contain;object-position:center;padding:10px}.project-image-wrap.project-image-medmemory img{object-fit:cover;--project-image-position:center 34%;--project-image-transform:scale(1.09);--project-image-hover-transform:scale(1.11);padding:0}.project-image-wrap.project-image-edutech img{object-fit:cover;--project-image-position:42% 18%;--project-image-transform:scale(1);--project-image-hover-transform:scale(1.02);padding:0}.project-image-wrap:after{content:"";background:#ffffffd6;border-radius:50%;width:42px;height:42px;position:absolute;inset:auto 16px 16px auto;box-shadow:0 10px 24px #10182814}.project-image-overlay{z-index:2;display:inline-flex;position:absolute;inset:18px auto auto 18px}.project-visual{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#ffffff94,#fff3),#ffffff3d;border:1px solid #ffffff5c;border-radius:20px;flex-direction:column;justify-content:flex-start;height:100%;min-height:220px;padding:20px;display:flex;position:relative}.project-eyebrow{color:#101828b8;letter-spacing:.08em;text-transform:uppercase;background:#ffffffa6;border-radius:999px;align-self:flex-start;padding:7px 10px;font-size:.76rem;font-weight:700;display:inline-flex}.project-content{z-index:2;padding:22px;position:relative}.project-content h3{letter-spacing:-.03em;margin-bottom:12px}.project-content p{margin:0 0 18px}.project-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:0 18px 48px #1018281a}.project-card:hover:before{opacity:1}.project-card:hover .project-image-wrap img{transform:var(--project-image-hover-transform,scale(1.04));filter:saturate(1.05)contrast(1.04)}.project-card:hover .project-visual{transform:translateY(-2px)}.project-card:hover .project-image-wrap:after{background:#fffffff0}.accent-indigo{background:radial-gradient(circle at 100% 0,#4f46e538,#0000 30%),linear-gradient(135deg,#e7e8ff,#f6f7ff 58%,#eef1ff)}.accent-emerald{background:radial-gradient(circle at 100% 0,#10b9812e,#0000 30%),linear-gradient(135deg,#e6f9f1,#f4fdf9 58%,#edf9f4)}.accent-amber{background:radial-gradient(circle at 100% 0,#f59e0b33,#0000 30%),linear-gradient(135deg,#fff1d8,#fff8eb 58%,#fff4df)}.accent-rose{background:radial-gradient(circle at 100% 0,#f43f5e29,#0000 30%),linear-gradient(135deg,#ffe8ef,#fff6f8 58%,#fff0f4)}.motif-records{flex:1;min-height:132px;margin-top:18px;position:relative}.record-card{background:#ffffff9e;border:1px solid #fff6;border-radius:18px;position:absolute;box-shadow:0 12px 26px #10182814}.record-card-primary{inset:18px 28px 18px 22px}.record-card-secondary{opacity:.82;inset:0 68px 54px 86px}.record-card-tertiary{opacity:.7;inset:46px 110px 0 36px}.record-node{background:linear-gradient(135deg,#10b98133,#4f46e52e);border:1px solid #ffffff6b;border-radius:50%;width:54px;height:54px;position:absolute;bottom:22px;right:28px;box-shadow:0 12px 24px #10182814}.motif-learning{flex:1;gap:16px;width:100%;margin-top:20px;display:grid}.learning-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.learning-grid span{background:#ffffff94;border:1px solid #ffffff61;border-radius:14px;height:44px;display:block;box-shadow:inset 0 1px #ffffffa6}.learning-progress{background:#ffffff80;border-radius:999px;height:14px;overflow:hidden}.learning-progress-bar{border-radius:inherit;background:linear-gradient(135deg,#f43f5e73,#4f46e580);width:62%;height:100%}.learning-pill-row{flex-wrap:wrap;gap:8px;display:flex}.learning-pill-row span{color:#101828b8;background:#ffffff9e;border-radius:999px;padding:8px 10px;font-size:.82rem;font-weight:600}.motif-infrastructure{flex:1;gap:16px;width:100%;margin-top:20px;display:grid}.infra-grid{grid-template-columns:1.15fr .85fr;gap:10px;display:grid}.infra-block{background:#ffffff8f;border:1px solid #ffffff5c;border-radius:16px;display:block;box-shadow:inset 0 1px #ffffff9e}.infra-block-large,.infra-block-mid{min-height:78px}.infra-block-small,.infra-block-wide{min-height:52px}.infra-lines{gap:10px;display:grid}.infra-lines span{background:#ffffff80;border-radius:999px;height:12px;display:block}.infra-lines span:first-child{width:88%}.infra-lines span:nth-child(2){width:72%}.infra-lines span:nth-child(3){width:56%}.infra-chips{flex-wrap:wrap;gap:8px;display:flex}.infra-chips span{color:#101828b8;background:#ffffff9e;border-radius:999px;padding:8px 10px;font-size:.82rem;font-weight:600}.timeline{gap:18px;display:grid}.case-study-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-study-card,.education-card,.cert-card{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:24px;box-shadow:0 12px 32px #1018280d}.case-study-card{background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, transparent), transparent 36%), var(--panel);padding:28px}.case-study-top{gap:8px;margin-bottom:12px;display:grid}.case-study-top .eyebrow{margin:0}.case-study-top strong{font-family:var(--font-display), sans-serif;font-size:1.4rem;line-height:1.1}.case-study-context,.education-detail,.cert-card p{color:var(--muted);line-height:1.8}.case-study-context{margin:0 0 14px}.case-study-list{color:var(--text);margin:0;padding-left:18px;line-height:1.8}.timeline-card{border-radius:24px;grid-template-columns:minmax(280px,.86fr) minmax(0,1.14fr);gap:22px;padding:26px;display:grid;position:relative;overflow:hidden;box-shadow:0 12px 32px #1018280d}.timeline-card:before{content:"";background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent-strong) 72%, white));width:4px;position:absolute;inset:0 auto 0 0}.education-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.education-card{grid-template-rows:80px auto;align-content:start;padding:24px;display:grid}.education-logo-wrap{justify-content:center;align-items:flex-start;height:80px;margin-bottom:18px;display:flex}.education-logo{object-fit:contain;width:auto;max-width:min(100%,160px);height:auto;max-height:56px}.education-logo-moringa{max-width:min(100%,160px);max-height:60px}.education-card span,.cert-card span{color:var(--muted);margin-bottom:10px;display:block}.education-card h3,.cert-card h3{font-family:var(--font-display), sans-serif;margin:0 0 10px;font-size:1.3rem}.education-card p,.cert-card p{color:var(--text);margin:0 0 12px}.cert-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cert-card{padding:24px}.timeline-meta span,.timeline-meta p,.contact-grid span{color:var(--muted)}.timeline-header{grid-template-columns:auto 1fr;align-items:center;gap:14px;margin-bottom:14px;display:grid}.timeline-header span{color:color-mix(in srgb, var(--text) 82%, var(--muted));margin:0;font-size:1rem;font-weight:600;line-height:1.35}.timeline-meta p{margin:0}.experience-logo-wrap{border:1px solid var(--logo-line);background:var(--logo-surface);border-radius:18px;justify-content:center;align-items:center;min-width:116px;min-height:60px;padding:8px 12px;display:inline-flex;box-shadow:inset 0 1px #ffffffc7,0 10px 22px #10182814}.experience-logo{object-fit:contain;filter:saturate(1.04)contrast(1.04);width:auto;max-width:138px;height:auto;max-height:46px}.experience-logo-im-bank{border-radius:8px;max-width:132px;max-height:44px}.experience-logo-moringa{max-width:124px;max-height:40px}.experience-logo-twiga{border-radius:999px;max-width:92px;max-height:92px}.experience-logo-techcamp{border-radius:10px;max-width:138px;max-height:58px}.timeline-badges{gap:10px;margin-top:18px;display:grid}.timeline-badges strong{background:color-mix(in srgb, var(--accent) 10%, white);color:#334155;border-radius:999px;align-self:flex-start;padding:9px 12px;font-size:.88rem;font-weight:700;display:inline-flex}.timeline-badges span{color:var(--muted);background:#f4f6fa;border-radius:999px;align-self:flex-start;padding:9px 12px;font-size:.84rem;font-weight:600;display:inline-flex}.timeline-copy p{margin:0 0 14px}.timeline-copy ul{color:var(--text);margin:0;padding-left:18px;line-height:1.8}.contact-section{padding-bottom:64px}.contact-card{border:1px solid var(--line-strong);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, transparent), transparent 32%), linear-gradient(180deg, var(--panel-strong), color-mix(in srgb, var(--panel-strong) 90%, var(--bg-end)));box-shadow:var(--shadow);border-radius:28px;padding:30px}.contact-copy{max-width:60ch}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}.contact-grid a{border-radius:18px;padding:22px}.contact-grid span{margin-bottom:10px;display:block}.contact-grid strong{font-size:1.1rem}.theme-toggle{border:1px solid var(--line);background:color-mix(in srgb, var(--panel-strong) 92%, transparent);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:10px;padding:8px 12px;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.theme-toggle:hover{transform:translateY(-1px)}.theme-toggle-track{background:color-mix(in srgb, var(--accent) 18%, white);border-radius:999px;width:42px;height:24px;position:relative}.theme-toggle-thumb{background:linear-gradient(135deg, var(--accent), #7c3aed);border-radius:50%;width:18px;height:18px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 6px 16px #0000002e}[data-theme=dark] .theme-toggle-thumb{transform:translate(18px)}.theme-toggle-label{min-width:42px;font-size:.86rem;font-weight:600}.section-grid:nth-of-type(2){animation-delay:80ms}.section-grid:nth-of-type(3){animation-delay:.16s}.section-grid:nth-of-type(4){animation-delay:.24s}.section-grid:nth-of-type(5){animation-delay:.32s}@keyframes section-rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero,.section-grid,.button,.project-card,.project-image-wrap img,.timeline-card,.metric-card,.skill-card,.contact-grid a,.theme-toggle,.theme-toggle-thumb{transition:none!important;animation:none!important}}@media (max-width:1080px){.hero,.timeline-card{grid-template-columns:1fr}.hero{padding-top:28px}.hero h1{max-width:100%}.metrics,.skills-layout,.projects-grid,.contact-grid,.case-study-grid,.education-grid,.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.page-shell{padding:16px}.topbar{border-radius:24px;gap:12px;padding:16px;display:grid;position:static}.topnav{display:none}.topbar-actions{gap:10px;width:100%;display:grid}.brand{font-size:.92rem}.mobile-topnav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mobile-topnav a{border:1px solid var(--line);min-height:40px;color:var(--muted);text-align:center;background:#ffffffb3;border-radius:14px;justify-content:center;align-items:center;padding:8px 10px;font-size:.84rem;font-weight:600;display:flex}.theme-toggle{justify-self:start}.timeline-header{grid-template-columns:104px 1fr;gap:12px}.experience-logo-wrap{min-width:104px;padding:8px 10px}.hero,.section-grid{padding-top:56px}.hero{gap:24px;padding-top:20px}.hero-copy{gap:0;display:grid}.hero h1{max-width:9ch;font-size:clamp(2.45rem,13vw,3.5rem);line-height:.96}.hero-text{margin-top:18px;font-size:.96rem;line-height:1.7}.hero-pill{margin-bottom:14px;padding:8px 12px;font-size:.82rem}.hero-actions{gap:10px;margin-top:22px}.button{min-height:48px;padding:0 18px}.hero-highlights{display:none}.hero-visual{justify-content:flex-start}.portrait-card{width:min(100%,340px)}.portrait-frame{aspect-ratio:.84}.portrait-caption{margin-top:-24px;padding:16px 16px 14px}.portrait-caption strong{font-size:.98rem}.portrait-caption p{font-size:.85rem;line-height:1.5}.metrics,.skills-layout,.projects-grid,.contact-grid,.case-study-grid,.education-grid,.cert-grid{grid-template-columns:1fr}.about-panel,.contact-card{padding:22px}.portrait-card:before{inset:-10px 10px 78px -10px}.portrait-caption{width:calc(100% - 20px);margin-top:-34px}}
