@font-face{font-family:Rotation LT Std Roman;src:url(https://db.onlinewebfonts.com/t/1eb68eb85f586ce20250af25a8a77f4a.eot?#iefix) format("embedded-opentype"),url(https://db.onlinewebfonts.com/t/1eb68eb85f586ce20250af25a8a77f4a.woff2) format("woff2"),url(https://db.onlinewebfonts.com/t/1eb68eb85f586ce20250af25a8a77f4a.woff) format("woff"),url(https://db.onlinewebfonts.com/t/1eb68eb85f586ce20250af25a8a77f4a.ttf) format("truetype")}*{box-sizing:border-box}html{font-size:17px;scroll-behavior:smooth}:root{font-family:Montserrat,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:500;color:#1a1a1a;background-color:#fdfdf7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh}#app{min-height:100vh}.app{min-height:100vh;background:#fdfdf7}.layout{display:flex;max-width:1200px;margin:0 auto;min-height:100vh;padding-left:100px}.layout--stacked{flex-direction:column;min-height:auto}.layout-section{display:flex;min-height:auto;padding:1.5rem 2rem 1.5rem 1.5rem}.layout-section:first-child{padding-top:5rem}.layout-section--overview{min-height:auto}.layout-section:last-child{padding-bottom:2rem}.profile-column{flex:0 0 35%;max-width:35%;padding:0 1.5rem 0 0}.widgets-column{flex:0 0 65%;max-width:65%;padding:0}.widgets-column--full{flex:1 1 100%;max-width:100%}.profile-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000000f}.avatar-wrapper{display:flex;justify-content:center;margin-bottom:1.5rem}.avatar-placeholder{width:230px;height:230px;border-radius:50%;background:#f3f4f6;display:flex;align-items:center;justify-content:center;color:#9ca3af}.avatar-img{width:230px;height:230px;border-radius:50%;object-fit:cover}.profile-name{font-family:Space Grotesk,sans-serif;font-size:1.25rem;font-weight:600;margin:.75rem 0 1rem;text-align:center;display:flex;align-items:center;justify-content:center;gap:.25rem}.verified-badge{color:#22c55e;font-size:1rem}.profile-details{list-style:none;padding:0;margin:0 0 1rem;font-size:.875rem}.profile-details li{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;color:#4b5563}.profile-details .icon{flex-shrink:0}.profile-details .icon-octicon{display:flex;align-items:center;color:#8b949e}.profile-details a{color:#2563eb;text-decoration:none}.profile-details a:hover{text-decoration:underline}.profile-details .link{color:#2563eb;cursor:pointer}.skill-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.badge{font-size:.75rem;padding:.25rem .5rem;border-radius:6px;font-weight:500}.badge-yellow{background:#fef9c3;color:#854d0e}.badge-pink{background:#fce7f3;color:#9d174d}.badge-green{background:#dcfce7;color:#166534}.badge-distributed{background:#ffdd21;color:#1a1a1a}.badge-cloud-native{background:#3cb371;color:#fff}.badge-ml{background:#0096ff;color:#fff}.profile-bio{font-size:.875rem;color:#4b5563;margin:0 0 1rem;line-height:1.5}.profile-footer{font-size:.75rem;color:#9ca3af}.overview-section__title{font-size:1.75rem;font-weight:700;margin:3rem 0 .5rem;color:#1a1a1a}.overview-card{background:#fdfdf7;padding:1.5rem;width:100%;margin-top:.25rem}.overview-layout{display:flex;align-items:flex-start;gap:1.5rem;width:100%;min-height:auto}.overview-about{flex:0 0 65%;max-width:65%;display:flex;flex-direction:column;font-family:sans-serif}.overview-about__scroll{flex:1;overflow-y:auto;max-height:45vh;scrollbar-width:none;-ms-overflow-style:none;padding-top:.5rem}.overview-about__scroll::-webkit-scrollbar{display:none}.overview-about__scroll p{margin:0 0 1rem;font-size:.9rem;color:#4b5563;line-height:1.6;font-family:sans-serif}.overview-about__scroll p:last-child{margin-bottom:0}.overview-profile{flex:0 0 35%;max-width:35%;padding-left:1rem;margin-top:-3rem}.overview-profile .profile-details,.overview-profile .skill-badges{padding-left:2.5rem}.widgets-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.widget-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.widget-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.widget-logo{color:#1a1a1a}.linkedin-logo{color:#0a66c2}.widget-badge{font-size:.75rem;color:#6b7280}.widget-title{font-size:1rem;font-weight:600;margin:0 0 1rem}.github-widget{grid-column:span 1}.github-widget-header .widget-badge{font-weight:900}.github-widget-header{display:flex;align-items:center}.github-calendar-layout{display:flex;gap:1.5rem;align-items:flex-start}.github-calendar-container{flex:1;min-width:0;padding:1.5rem 1.25rem 1rem .75rem}.github-calendar-container .github-calendar-wrapper{margin-bottom:0}.github-year-list{display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.github-year-btn{font-family:Mona Sans,sans-serif;font-size:.9rem;padding:.4rem .75rem;border:none;border-radius:8px;background:transparent;color:#6b7280;cursor:pointer;text-align:left;transition:color .2s,background .2s}.github-year-btn:hover{color:#1a1a1a}.github-year-btn--active{background:#2563eb;color:#fff}.github-year-btn--active:hover{background:#1d4ed8;color:#fff}.github-calendar-wrapper{margin-bottom:1rem;margin-left:1.8rem;overflow-x:auto}.github-calendar-wrapper svg{max-width:100%}.react-activity-calendar__tooltip{width:max-content;max-width:calc(100vw - 20px);padding:.35em .6em;border-radius:6px;background-color:#1a1a1a;color:#fff;font-size:12px;box-shadow:0 2px 8px #00000026}.react-activity-calendar__tooltip-arrow{fill:#1a1a1a}.widget-description{font-size:.8rem;color:#4b5563;margin:0 0 .75rem;line-height:1.4}.widget-tags{display:flex;gap:.5rem;flex-wrap:wrap}.tag{font-size:.7rem;color:#6b7280}.linkedin-widget{grid-column:span 1}.linkedin-chart{width:100%;height:80px}.chart-svg{width:100%;height:60px}.chart-svg polyline{stroke:#0a66c2}.chart-labels{display:flex;justify-content:space-between;font-size:.7rem;color:#6b7280}.projects-section{padding:2rem 0}.projects-section__title{font-size:1.75rem;font-weight:700;margin:0 0 1rem;color:#1a1a1a}.projects-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.project-item{display:flex;flex-direction:column}.project-item__title{font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.project-card{display:block;position:relative;overflow:hidden;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;text-decoration:none;box-shadow:0 1px 3px #0000000f;transition:border-color .2s,box-shadow .2s}.project-card:hover{border-color:#2563eb;box-shadow:0 4px 12px #2563eb1a}.project-card__image{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover}.project-card__placeholder{display:block;width:100%;aspect-ratio:16 / 10;background:#e5e7eb}.project-card__hover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .25s ease}.project-card:hover .project-card__hover-video{opacity:1}.project-item__footer{display:flex;align-items:flex-start;gap:.75rem;margin-top:.75rem}.project-item__description{margin:0;font-size:.9rem;color:#4b5563;line-height:1.5;flex:1 1 75%;min-width:0}.project-item__badges{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-left:auto;justify-content:flex-end}.project-item__badge{font-size:.65rem;padding:.2rem .45rem;background:#f3f4f6;color:#6b7280;border-radius:4px}.hackathons-section{padding:2rem 0}.hackathons-section__title{font-size:1.75rem;font-weight:700;margin:0 0 1rem;color:#1a1a1a}.hackathons-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.hackathon-item{display:flex;flex-direction:column}.hackathon-item__title{font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.hackathon-item__event{font-weight:400;color:#6b7280}.hackathon-card{display:block;position:relative;overflow:hidden;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;text-decoration:none;box-shadow:0 1px 3px #0000000f;transition:border-color .2s,box-shadow .2s}.hackathon-card:hover{border-color:#2563eb;box-shadow:0 4px 12px #2563eb1a}.hackathon-card__image{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover}.hackathon-card__placeholder{display:block;width:100%;aspect-ratio:16 / 10;background:#e5e7eb}.hackathon-card__hover-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .25s ease}.hackathon-card:hover .hackathon-card__hover-video{opacity:1}.hackathon-item__footer{display:flex;align-items:flex-start;gap:.75rem;margin-top:.75rem}.hackathon-item__description{margin:0;font-size:.9rem;color:#4b5563;line-height:1.5;flex:1 1 75%;min-width:0}.hackathon-item__badges{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-left:auto;justify-content:flex-end}.hackathon-item__badge{font-size:.65rem;padding:.2rem .45rem;background:#f3f4f6;color:#6b7280;border-radius:4px}.clubs-section{padding:2rem 0}.clubs-section__title{font-size:1.75rem;font-weight:700;margin:0 0 1rem;color:#1a1a1a}.clubs-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.club-item{display:flex;flex-direction:column}.club-item__header{margin-bottom:.5rem}.club-item__description--under{margin:.25rem 0 0}.club-item__title{font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.club-card{display:block;overflow:hidden;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;text-decoration:none;box-shadow:0 1px 3px #0000000f;transition:border-color .2s,box-shadow .2s}.club-card:hover{border-color:#2563eb;box-shadow:0 4px 12px #2563eb1a}.club-card--massai{background:#e94040}.club-card__image{display:block;width:100%;aspect-ratio:16 / 10;object-fit:contain;object-position:center;background:#f3f4f6}.club-card__image--massai{background:#e94040}.club-card--iam3d,.club-card__image--iam3d{background:#02a6e7}.club-card__placeholder{display:block;width:100%;aspect-ratio:16 / 10;background:#e5e7eb}.club-item__footer{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-top:.75rem}.club-item__description{margin:0;font-size:.9rem;color:#4b5563;line-height:1.5;flex:1;min-width:0}.club-item__footer--badges-only .club-item__badges{margin-left:auto}.club-item__badges{display:flex;gap:.35rem;flex-shrink:0}.club-item__badge{font-size:.65rem;padding:.2rem .45rem;background:#f3f4f6;color:#6b7280;border-radius:4px}.skills-tools-section{padding:2rem 0}.skills-tools__title{font-size:1.75rem;font-weight:700;margin:0 0 .5rem;color:#1a1a1a}.skills-tools__tagline{font-size:.95rem;color:#6b7280;margin:0 0 1rem}.skills-tools__description{font-size:.95rem;line-height:1.6;color:#1a1a1a;margin:0 0 1.5rem;max-width:720px}.skills-tools__grid{display:flex;flex-wrap:wrap;gap:.5rem}.skills-tools__badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;background:#1a1a1a;color:#fff;font-size:.8rem;font-weight:500;border-radius:6px}.skills-tools__badge-icon{flex-shrink:0;width:1em;height:1em}.radial-nav{position:fixed;left:-260px;top:50%;transform:translateY(-50%);z-index:100;width:420px;height:400px;padding-left:0;pointer-events:none}.radial-nav__orbit{position:relative;width:100%;height:100%;pointer-events:auto}.radial-nav__item{position:absolute;left:0;top:50%;margin-left:-36px;margin-top:-18px;min-width:72px;min-height:36px;display:flex;align-items:center;justify-content:center;padding:.4rem .6rem;border:none;background:transparent;color:#1a1a1a;font-family:Rotation LT Std Roman,Times New Roman,Times,serif;font-size:.8rem;font-weight:500;cursor:pointer;pointer-events:auto;white-space:nowrap;transition:font-size .25s ease}.radial-nav__item:hover{color:#1a1a1a}.radial-nav__item--active{font-size:1.5rem}.radial-nav__label{max-width:100%}.case-study{display:flex;min-height:100vh;background:#fdfdf7}.case-study--not-found{flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.case-study--not-found a{color:#2563eb;text-decoration:none}.case-study--not-found a:hover{text-decoration:underline}.case-study__sidebar{flex:0 0 220px;align-self:flex-start;position:sticky;top:0;padding:2rem 1.5rem 2rem 2rem;border-right:1px solid #e5e7eb;background:#fdfdf7}.case-study__back{display:block;font-size:.8rem;font-weight:600;color:#1a1a1a;text-decoration:none;margin-bottom:2rem;letter-spacing:.02em}.case-study__back:hover{text-decoration:underline}.case-study__meta{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1.5rem}.case-study__meta-label{font-size:.7rem;color:#6b7280;letter-spacing:.05em}.case-study__meta-title{font-size:1rem;font-weight:600;color:#1a1a1a}.case-study__nav{position:relative;display:flex;flex-direction:column;gap:1rem;padding-left:.25rem}.case-study__nav:before{content:"";position:absolute;left:1.1rem;top:.75rem;bottom:.75rem;width:2px;background:#d1d5db;z-index:0}.case-study__nav-item{position:relative;z-index:1;display:flex;align-items:center;gap:.5rem;padding:0;border:none;background:none;font-size:.8rem;color:#4b5563;cursor:pointer;text-align:left}.case-study__nav-item:before{content:"•";color:#9ca3af;font-size:1.5rem;display:flex;align-items:center;justify-content:center;width:1.75rem;flex-shrink:0}.case-study__nav-item--active:before{content:"●";color:#1a1a1a;font-size:1.65rem}.case-study__nav-item--active{color:#1a1a1a;font-weight:500}.case-study__nav-item:hover{color:#1a1a1a}.case-study__main{flex:1;max-width:900px;padding:2rem 2rem 4rem;margin:0 auto}.case-study__header{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem}.case-study__header-left{flex:1;min-width:0}.case-study__title{font-size:1.75rem;font-weight:700;margin:0 0 .5rem;color:#1a1a1a;letter-spacing:.02em}.case-study__subtitle{font-size:.95rem;color:#4b5563;margin:0;line-height:1.5}.case-study__header-right{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.case-study__tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.case-study__tag{font-size:.7rem;padding:.25rem .6rem;border-radius:6px;font-weight:500}.case-study__tag:nth-child(1){background:#f3f4f6;color:#1a1a1a}.case-study__tag:nth-child(n+2){background:#374151;color:#fff}.case-study__year{font-size:.85rem;color:#6b7280}.case-study__sections{display:flex;flex-direction:column;gap:0}.case-study__section{min-height:60vh;padding-top:2rem;padding-bottom:2rem}.case-study__section:first-child{padding-top:0}.case-study__mockup{margin-bottom:0}.case-study__overview-image{width:100%;max-width:100%;border-radius:12px;display:block}.case-study__architecture-image{width:100%;max-width:100%;border-radius:12px;display:block;margin-bottom:1.5rem}.case-study__youtube-embed{position:relative;width:100%;padding-bottom:56.25%;border-radius:12px;overflow:hidden}.case-study__youtube-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:12px}.case-study__section-placeholder{padding:2rem 0}.case-study__section-title{font-size:1.25rem;font-weight:600;margin:0 0 .75rem;color:#1a1a1a}.case-study__section-text{font-size:.95rem;color:#6b7280;margin:0;line-height:1.6}.case-study__section-text--pre{white-space:pre-line}.case-study__content{font-size:.95rem;color:#374151;line-height:1.6}.case-study__content h3{font-size:1.1rem;font-weight:600;margin:1.5rem 0 .5rem;color:#1a1a1a}.case-study__content h3:first-child{margin-top:0}.case-study__content p{margin:0 0 1rem}.case-study__content ul{margin:0 0 1rem;padding-left:1.5rem}.case-study__content li{margin-bottom:.5rem}.case-study__content-list{list-style:none;padding-left:0}.case-study__content-list li{margin-bottom:1rem;padding-left:1rem;border-left:3px solid #e5e7eb}.case-study__table-wrapper{overflow-x:auto;margin:1rem 0}.case-study__table{width:100%;border-collapse:collapse;font-size:.9rem}.case-study__table th,.case-study__table td{padding:.5rem .75rem;border:1px solid #e5e7eb;text-align:left}.case-study__table th{background:#f9fafb;font-weight:600;color:#1a1a1a}.case-study__table td{color:#4b5563}.case-study__code{margin:1rem 0;padding:1rem;background:#1f2937;color:#e5e7eb;border-radius:8px;font-size:.85rem;overflow-x:auto}.case-study__code code{font-family:ui-monospace,monospace;white-space:pre}.try-it-out-card{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;margin-top:1rem;background:#1a1a1a;color:#fff;border-radius:12px;text-decoration:none;font-weight:600;transition:background .2s,transform .2s}.try-it-out-card:hover{background:#374151;transform:translateY(-2px)}.try-it-out-card__icon{width:24px;height:24px;flex-shrink:0}.try-it-out-card__label{font-size:.95rem}.case-study__footer{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding-top:2rem;border-top:1px solid #e5e7eb}.case-study__footer-label{font-size:.7rem;color:#6b7280;letter-spacing:.05em}.case-study__footer-question{display:flex;align-items:center;gap:.5rem;padding:0;border:none;background:none;font-size:1.25rem;font-weight:700;color:#1a1a1a;cursor:pointer}.case-study__footer-arrow{font-size:1rem;color:#6b7280}.app-mockup{width:100%}.app-mockup__window{background:#1f2937;border:2px solid #3b82f6;border-radius:12px;overflow:hidden;padding:1rem}.app-mockup__topbar{display:flex;gap:1rem;font-size:.75rem;color:#9ca3af;margin-bottom:.75rem}.app-mockup__main-title{font-size:1.1rem;font-weight:600;color:#fff;text-align:center;margin:0 0 1rem}.app-mockup__grid{display:grid;grid-template-columns:1fr 2fr 1fr;grid-template-rows:auto 1fr;gap:1rem;min-height:320px}.app-mockup__panel{background:#374151;border-radius:8px;padding:1rem;color:#e5e7eb}.app-mockup__panel h3{font-size:.85rem;font-weight:600;margin:0 0 .75rem;color:#fff}.app-mockup__panel ul{list-style:none;padding:0;margin:0;font-size:.8rem;line-height:1.6}.app-mockup__panel--outline,.app-mockup__panel--content{grid-row:span 2}.app-mockup__snippets{display:flex;flex-direction:column;gap:.75rem}.app-mockup__snippet{display:flex;gap:.75rem;align-items:flex-start}.app-mockup__snippet-placeholder{flex-shrink:0;width:60px;height:45px;background:#4b5563;border-radius:6px}.app-mockup__snippet p{margin:0;font-size:.75rem;color:#d1d5db;line-height:1.4}.app-mockup__prompt{font-size:.75rem;color:#9ca3af;margin:0 0 .75rem}.app-mockup__chat-bubble{background:#4b5563;border-radius:8px;padding:.5rem .75rem;font-size:.75rem;margin-bottom:.75rem}.app-mockup__chat-input{display:flex;align-items:center;justify-content:space-between;background:#4b5563;border-radius:8px;padding:.5rem .75rem;font-size:.75rem;color:#9ca3af}.app-mockup__send-icon{color:#fff}.app-mockup__pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.app-mockup__pagination button{padding:.25rem .5rem;border:1px solid #e5e7eb;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem}.app-mockup__dots{display:flex;gap:.5rem;align-items:center}.app-mockup__dots span{width:6px;height:6px;border-radius:50%;background:#d1d5db}.app-mockup__dot--active{width:8px;height:8px;background:#1a1a1a}@media(max-width:768px){.case-study{flex-direction:column}.case-study__sidebar{flex:none;border-right:none;border-bottom:1px solid #e5e7eb}.case-study__header{flex-direction:column}.case-study__header-right{align-items:flex-start}.case-study__tags{justify-content:flex-start}.app-mockup__grid{grid-template-columns:1fr;grid-template-rows:auto}.app-mockup__panel--outline,.app-mockup__panel--content{grid-row:span 1}.radial-nav{left:50%;top:auto;bottom:1rem;transform:translate(-50%);width:100%;height:auto;max-width:100%}.radial-nav__orbit--mobile{display:flex;flex-direction:row;justify-content:center;align-items:center;flex-wrap:wrap;gap:.5rem}.radial-nav__orbit--mobile .radial-nav__item{position:static;margin:0}.layout--stacked{padding-left:1rem}.layout-section{flex-direction:column;min-height:auto;padding:1.5rem 1rem}.overview-layout{flex-direction:column}.overview-about,.overview-profile{flex:1 1 100%;max-width:100%}.overview-about__scroll{max-height:40vh}.profile-column,.widgets-column,.widgets-column--full{flex:1 1 100%;max-width:100%;padding:0}.widgets-grid,.projects-cards,.hackathons-cards,.clubs-cards{grid-template-columns:1fr}}.react-activity-calendar__tooltip{width:max-content;max-width:calc(100vw - 20px);padding:.2em .5em;border-radius:.25em;background-color:#1a1a1a;color:#f0f0f0;font-size:13px}.react-activity-calendar__tooltip .react-activity-calendar__tooltip-arrow{fill:#1a1a1a}.react-activity-calendar__tooltip[data-color-scheme=dark]{background-color:#f0f0f0;color:#0f0f0f}.react-activity-calendar__tooltip[data-color-scheme=dark] .react-activity-calendar__tooltip-arrow{fill:#f0f0f0}
