@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/ibm-plex-sans-var.woff2) format("woff2")}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2")}code{font-family:"IBM Plex Mono",Menlo,Monaco,Consolas,"Courier New",monospace}body,html{scroll-behavior:smooth}body{margin:0;background-color:#faf9f6;color:#14181c;font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:19px;line-height:1.3;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s,color .2s}@media (prefers-reduced-motion:reduce){body,html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:1380px){body,html{font-size:16px;line-height:normal}}h1,h2,h3{font-weight:700;letter-spacing:-.01em}.section-heading{position:relative;padding-left:20px}.section-heading:before{content:"";position:absolute;left:0;top:.2em;width:3px;height:1em;background-color:#0f6e5c}.dark-mode .section-heading:before{background-color:#35d399}@media(max-width:768px){.section-heading{padding-left:16px}}.mono{font-family:"IBM Plex Mono",Menlo,Monaco,Consolas,"Courier New",monospace;font-weight:500}.App{text-align:center;width:100%;overflow-x:hidden}.App-logo{height:40vmin}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(.625rem + 2vmin);color:#e6edf3}.App-link{color:#09d3ac}.subTitle{color:#5b6168}.dark-mode .subTitle{color:#94a3ad}.container{max-width:1040px;margin:0 auto;padding:0 24px}@media(max-width:768px){.container{padding:0 20px}}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #0f6e5c;outline-offset:2px}.dark-mode a:focus-visible,.dark-mode button:focus-visible,.dark-mode input:focus-visible,.dark-mode summary:focus-visible{outline-color:#35d399}.main-button{display:inline-block;background-color:#0f6e5c;border:1px solid #0f6e5c;color:#fff;font-weight:700;width:max-content;padding:13px 22px;border-radius:6px;text-align:center;text-decoration:none;font-size:1rem;cursor:pointer;transition:background-color .2s ease-in-out}.main-button:hover{background-color:#0b5747}.dark-mode .main-button{background-color:#35d399;border-color:#35d399;color:#0d1117}.dark-mode .main-button:hover{background-color:#e6edf3}.headroom-wrapper{max-height:100px}.dark-menu{background-color:#0d1117!important;color:#e6edf3}.dark-menu li a{color:#e6edf3!important}.dark-menu li a:hover{background-color:#161b22!important}.header{background-color:#faf9f6;max-width:100%;padding:15px 20px;margin:0 auto}.header ul{margin:0;padding:0;list-style:none;overflow:hidden}.grey-color{color:#5b6168}.header li a{display:block;padding:15px 20px;color:#14181c;text-decoration:none}.header .menu-icon:hover,.header li a:hover{background-color:#f1f0ec}.header .logo{display:block;flex:none;float:left;font-size:1.5em;text-decoration:none;margin-top:10px;line-height:normal;color:#14181c}.dark-menu .logo{color:#e6edf3}.header .logo-name{font-weight:700;padding:0 10px}.header .menu{clear:both;max-height:0;visibility:hidden;overflow:hidden;transition:max-height .2s ease-out}.header .menu[data-open=true]{max-height:320px;visibility:visible}.header .menu-icon{cursor:pointer;display:inline-block;float:right;padding:20px;min-width:44px;min-height:44px;position:relative;border:none;background:transparent}.header .menu-icon .navicon{background:#333;display:block;height:2px;position:relative;transition:background .2s ease-out;width:18px}.header .menu-icon .navicon-dark{background:#e6edf3}.header .menu-icon .navicon:after,.header .menu-icon .navicon:before{background:#333;content:"";display:block;height:100%;position:absolute;transition:all .2s ease-out;width:100%}.header .menu-icon .navicon-dark:after,.header .menu-icon .navicon-dark:before{background:#e6edf3!important;content:"";display:block;height:100%;position:absolute;transition:all .2s ease-out;width:100%}.header .menu-icon .navicon:before{top:5px}.header .menu-icon .navicon:after{top:-5px}@media(min-width:48em){.header{justify-content:space-between}.header,.header .menu{display:flex;align-items:center}.header .menu{visibility:visible;max-height:none!important;overflow:visible}.header .menu-icon{display:none}}@media(max-width:960px)and (min-width:768px){.header{font-size:12px}}.switch{position:relative;display:inline-flex;align-items:center;width:54px;height:44px}.switch input{position:absolute;width:1px;height:1px;opacity:0}.switch .slider{position:absolute;inset:9px 0;border-radius:26px;background:#ccc;cursor:pointer}.switch .slider:before{content:"";position:absolute;width:26px;height:26px;border-radius:50%;background:#fff;transition:transform .2s}.switch input:checked+.slider{background:#0f6e5c}.switch input:checked+.slider:before,.switch input:checked+.slider>.emoji{transform:translateX(28px)}.switch .emoji{position:relative;display:flex;align-items:center;justify-content:center;width:26px;height:26px;transition:transform .2s}.switch input:focus-visible+.slider{outline:3px solid #0f6e5c;outline-offset:4px}.dark-mode .switch input:focus-visible+.slider{outline-color:#35d399}.greet-main{position:relative;padding-top:72px;padding-bottom:72px}.greeting-graphic{position:absolute;top:50%;right:8px;width:260px;height:260px;transform:translateY(-50%);background-image:radial-gradient(#0f6e5c 1.5px,transparent 0);background-size:26px 26px;-webkit-mask-image:radial-gradient(circle,#000 35%,transparent 72%);mask-image:radial-gradient(circle,#000 35%,transparent 72%);opacity:.3;pointer-events:none}.dark-mode .greeting-graphic{background-image:radial-gradient(#35d399 1.5px,transparent 0);opacity:.22}@media(max-width:1100px){.greeting-graphic{display:none}}.greeting-eyebrow{display:flex;align-items:center;grid-gap:10px;gap:10px;font-size:14px;font-weight:500;letter-spacing:.01em;color:#5b6168;margin:0 0 16px}.greeting-eyebrow:before{content:"";display:inline-block;width:18px;height:2px;background-color:#0f6e5c}.dark-mode .greeting-eyebrow{color:#94a3ad}.dark-mode .greeting-eyebrow:before{background-color:#35d399}.greeting-text{font-size:clamp(2.1rem,5vw,3.75rem);letter-spacing:-.02em;line-height:1.1;max-width:20ch;margin:0 0 20px;color:#14181c}.dark-mode .greeting-text{color:#e6edf3}.greeting-text-p{font-size:18px;line-height:1.65;max-width:65ch;margin:0}.button-greeting-div{display:flex;flex-wrap:wrap;grid-gap:12px;gap:12px;margin-top:28px}.button-greeting-div-center{margin-top:20px;justify-content:center}.greeting-secondary-action{background-color:transparent;color:#0f6e5c}.dark-mode .greeting-secondary-action{background-color:transparent;color:#35d399}.greeting-secondary-action:hover{background-color:#0f6e5c;color:#fff}.dark-mode .greeting-secondary-action:hover{background-color:#35d399;color:#0d1117}.greeting-quiet-links{display:flex;grid-gap:20px;gap:20px;margin-top:20px}.greeting-featured-work{display:inline-block;max-width:60ch;margin-top:24px;color:#0f6e5c;font-size:16px;line-height:1.6;text-underline-offset:4px}.dark-mode .greeting-featured-work{color:#35d399}.greeting-quiet-links a{color:#5b6168;text-decoration:underline;font-size:16px}.dark-mode .greeting-quiet-links a{color:#94a3ad}.greeting-quiet-links a:hover{color:#0f6e5c}.dark-mode .greeting-quiet-links a:hover{color:#35d399}@media(max-width:768px){.greet-main{padding-top:48px;padding-bottom:48px}.button-greeting-div{justify-content:flex-start}}.capabilities{padding-top:8px;padding-bottom:24px}.capabilities h2{font-size:28px;margin:0 0 24px}.capabilities-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:28px;gap:28px}.capability{border-top:1px solid #e4e2dc;padding-top:20px}.capability h3{font-size:18px;line-height:1.4;margin:0 0 12px}.capability p{margin:0 0 16px}.capability a,.capability p{font-size:16px;line-height:1.6}.capability a{color:#0f6e5c;text-underline-offset:4px}.dark-mode .capability{border-color:#232a33}.dark-mode .capability a{color:#35d399}@media(max-width:768px){.capabilities-grid{grid-template-columns:1fr;grid-gap:20px;gap:20px}.capabilities h2{font-size:26px}}.experience-container{padding-top:72px;padding-bottom:72px;scroll-margin-top:100px}.experience-list{display:flex;flex-direction:column;grid-gap:24px;gap:24px}.experience-heading{font-size:32px;font-weight:700;margin:0 0 32px;color:#14181c}.dark-mode .experience-heading{color:#e6edf3}.experience-education{margin-top:32px;font-size:16px}@media(max-width:768px){.experience-container{padding-top:48px;padding-bottom:48px}.experience-heading{font-size:28px}}.experience-card{scroll-margin-top:100px;position:relative;padding:24px 0;border-bottom:1px solid #e4e2dc;text-align:left}.experience-card.dark-mode{border-bottom-color:#232a33}.experience-card:last-child{border-bottom:none}.experience-card:not(:last-child):after{content:"";position:absolute;left:24px;bottom:-24px;width:1px;height:24px;background-color:#e4e2dc}.experience-card.dark-mode:not(:last-child):after{background-color:#232a33}.experience-row-header{display:flex;align-items:center;grid-gap:16px;gap:16px}.experience-logo{position:relative;z-index:1;flex-shrink:0;width:48px;height:48px;object-fit:contain;border-radius:8px;background-color:#fff;border:1px solid #e4e2dc;box-sizing:border-box}.dark-mode .experience-logo{border-color:#232a33}.experience-company-initials{display:flex;align-items:center;justify-content:center;background:#f1f0ec;color:#14181c;font-size:1.25rem;font-weight:700}.experience-heading-text{flex:1 1;min-width:0}.experience-company{margin:0;font-size:18px;font-weight:700;color:#14181c}.dark-mode .experience-company{color:#e6edf3}.experience-role{margin:2px 0 0;font-size:16px}.experience-company-line{display:flex;align-items:center;flex-wrap:wrap;grid-gap:8px 12px;gap:8px 12px}.experience-current{font-size:12px;font-weight:600;line-height:1.5;padding:2px 8px;border:1px solid #0f6e5c;border-radius:4px;color:#0f6e5c}.dark-mode .experience-current{border-color:#35d399;color:#35d399}.experience-case-study{scroll-margin-top:100px}.experience-card:focus-visible{outline:2px solid #0f6e5c;outline-offset:4px}.dark-mode .experience-card:focus-visible{outline-color:#35d399}.experience-date{margin:0;font-size:14px;text-align:right;white-space:nowrap}.experience-bullets{margin:16px 0 0;padding-left:1.25rem}.experience-bullets li{font-size:16px;line-height:1.6;margin-bottom:6px}.experience-more{margin-top:8px}.experience-more summary{cursor:pointer;font-size:16px;font-weight:600;color:#0f6e5c;padding:4px 0;width:-moz-fit-content;width:fit-content}.dark-mode .experience-more summary{color:#35d399}.experience-more .experience-bullets{margin-top:12px}.case-study-content{max-width:72ch;padding:8px 0 8px 20px;margin-top:12px;border-left:2px solid #0f6e5c}.dark-mode .case-study-content{border-left-color:#35d399}.case-study-content h4{margin:20px 0 8px}.case-study-content p{margin:0;line-height:1.65}@media(max-width:768px){.experience-row-header{flex-wrap:wrap}.experience-date{text-align:left;width:100%;order:3;margin-top:4px}}#skills{padding-top:72px;padding-bottom:72px;scroll-margin-top:100px}.skills-heading{font-size:32px;font-weight:700;margin:0 0 32px;color:#14181c}.dark-mode .skills-heading{color:#e6edf3}.skills-description{max-width:65ch;line-height:1.6;margin:0 0 24px}@media(max-width:768px){#skills{padding-top:48px;padding-bottom:48px}.skills-heading{font-size:28px}}.skill-groups{display:grid;grid-template-columns:1fr;grid-gap:24px;gap:24px}.skill-group-heading{font-size:18px;font-weight:700;margin:0 0 8px;color:#14181c}.dark-mode .skill-group-heading{color:#e6edf3}.skill-group-items{font-size:16px;line-height:1.6;margin:0}@media(min-width:768px){.skill-groups{grid-template-columns:repeat(2,1fr);grid-gap:32px;gap:32px}}#blogs{padding-top:72px;padding-bottom:72px;scroll-margin-top:100px}.blog-header-text{font-size:32px;font-weight:700;margin:0 0 8px;color:#14181c}.dark-mode .blog-header-text{color:#e6edf3}.blog-subtitle{font-size:16px;margin:0 0 32px}.blog-main-div{display:flex}.blog-text-div{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:20px;gap:20px;width:100%}.button-greeting-div-center{display:flex;margin-top:28px;justify-content:flex-start}@media(max-width:768px){#blogs{padding-top:48px;padding-bottom:48px}.blog-header-text{font-size:28px}.blog-text-div{grid-template-columns:1fr}}.blog-card{display:block;padding:20px;border:1px solid #e4e2dc;border-radius:8px;text-decoration:none;color:inherit;transition:border-color .2s}.dark-mode .blog-card{border-color:#232a33}.blog-card:hover{border-color:#0f6e5c}.dark-mode .blog-card:hover{border-color:#35d399}.blog-title{margin:0 0 8px;font-size:18px;font-weight:700;color:#14181c}.dark-mode .blog-title{color:#e6edf3}.blog-description{margin:0;font-size:16px;line-height:1.5}.client-feedback{padding-top:72px;padding-bottom:24px}.client-feedback h2{margin:0 0 12px;font-size:32px}.client-feedback-intro{margin:0 0 28px;font-size:16px;line-height:1.6}.client-feedback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:24px;gap:24px}.client-review{display:flex;flex-direction:column;margin:0;padding:24px;border:1px solid #e4e2dc;border-radius:8px}.client-review-context{font-size:14px;margin:0 0 16px;line-height:1.5}.client-review blockquote{margin:0 0 24px}.client-review blockquote p{margin:0;font-size:18px;line-height:1.65}.client-review figcaption{margin-top:auto;display:flex;flex-direction:column;grid-gap:8px;gap:8px;font-size:15px;line-height:1.5}.client-review-author{font-weight:600;overflow-wrap:anywhere}.client-review a{color:#0f6e5c;text-underline-offset:4px;width:-moz-fit-content;width:fit-content}.dark-mode .client-review{border-color:#232a33}.dark-mode .client-review a{color:#35d399}@media(max-width:768px){.client-feedback{padding-top:48px}.client-feedback h2{font-size:28px}.client-feedback-grid{grid-template-columns:1fr}.client-review{padding:20px}}#contact{padding-top:72px;padding-bottom:72px;scroll-margin-top:100px}.dark-mode a{color:#e6edf3}.contact-title{font-size:32px;font-weight:700;margin:0 0 8px;color:#14181c}.dark-mode .contact-title{color:#e6edf3}.contact-subtitle{font-size:16px;line-height:1.6;max-width:65ch;margin:0 0 24px}.contact-detail-email{overflow-wrap:anywhere;font-size:20px;font-weight:600;color:#0f6e5c;text-decoration:none}.dark-mode .contact-detail-email{color:#35d399}.contact-detail-email:hover{text-decoration:underline}.contact-text-div{margin-top:1.5rem}@media(max-width:768px){#contact{padding-top:48px;padding-bottom:48px}.contact-title{font-size:28px}}.social-media-div{font-size:2em}.icon-button{margin-bottom:10px}.icon-button i{color:#e6edf3;border-radius:2.6rem;cursor:pointer;display:inline-block;font-size:1.3rem;height:2.6rem;line-height:2.6rem;position:relative;text-align:center;-webkit-user-select:none;user-select:none;width:2.6rem;margin:0 5px 10px;transition:.2s ease-in}.facebook i{background-color:#3b5998}.linkedin i{background-color:#0e76a8}.github i{background-color:#333}.gitlab i{background-color:#fca326}.google i{background-color:#ea4335}.twitter i{background-color:#1da1f2}.medium i{background-color:#000}.stack-overflow i{background-color:#f48024}.kaggle i{background-color:#20beff}.instagram i{background-color:#c13584}.facebook i:hover,.github i:hover,.gitlab i:hover,.google i:hover,.instagram i:hover,.kaggle i:hover,.linkedin i:hover,.medium i:hover,.stack-overflow i:hover,.twitter i:hover{background-color:#14181c}@media(max-width:768px){.social-media-div{text-align:center}}.topButton{position:fixed;bottom:20px;right:30px;z-index:99;font-size:25px}.fixedButton{border:none;outline:none;background-color:#0f6e5c;color:#fff;cursor:pointer;padding:15px;border-radius:15px;font-size:20px}.fixedButton:hover{background-color:#000;transition:all .2s ease-in-out}.dark-mode{background-color:#0d1117;color:#e6edf3;transition:background-color .2s,color .2s}.iframe-pdf{height:100vh;position:relative}.iframe-pdf iframe{display:block;width:100%;height:100%;border:none;overflow-y:auto;overflow-x:hidden}.iframe-pdf .downloadButton{bottom:20px;left:30px;position:fixed;z-index:99;text-decoration:none;font-size:16px}.resume-fallback{padding-top:72px;padding-bottom:72px;text-align:left}.resume-fallback-link{display:block;margin-top:20px;color:#0f6e5c}.dark-mode .resume-fallback-link{color:#35d399}
/*# sourceMappingURL=main.3d227285.chunk.css.map */