.light-mode{--background-color-values: 249, 249, 249;--background-secondary-color: #fefefe;--background-third-color-values: 223, 223, 223;--main-foreground-color-values: 0, 0, 0;--secondary-foreground-color: #2e2e2e;--third-foreground-color: #464646;--gradient-start-color: rgba(184, 223, 101, 1);--gradient-end-color: #80d7ad;--main-foreground-color: rgb(var(--main-foreground-color-values));--background-third-color: rgb(var(--background-third-color-values));--background-color: rgb(var(--background-color-values));--button-text-color: rgb(var(--main-foreground-color-values));--project-shadow-color: rgba(var(--main-foreground-color-values), .1)}.dark-mode{--background-color-values: 0, 0, 0;--background-secondary-color: #fefefe;--background-third-color-values: 223, 223, 223;--main-foreground-color-values: 249, 249, 249;--secondary-foreground-color: #2e2e2e;--third-foreground-color: #464646;--background-color-values: 19, 18, 22;--background-color-values: 15, 14, 14;--background-secondary-color: rgb(0, 0, 0);--background-third-color-values: 60, 60, 60;--main-foreground-color-values: 238, 238, 238;--secondary-foreground-color-values: 2212, 212, 212;--secondary-foreground-color-values: 255, 206, 206;--secondary-foreground-color-values: 255, 200, 200;--secondary-foreground-color-values: 255, 212, 212;--secondary-foreground-color: rgb(var(--secondary-foreground-color-values));--third-foreground-color: rgb(209, 209, 209);--gradient-start-color: rgba(184, 223, 101, 1);--gradient-end-color: #80d7ad;--button-text-color: rgb(var(--background-color-values));--button-text-color: rgb(0,0,0);--project-shadow-color: rgba(var(--secondary-foreground-color-values), .5)}.dark-mode #sun-icon{display:unset!important}.dark-mode #moon-icon{display:none!important}.dark-mode .project-image-holder{filter:invert()}html{overflow:auto;overflow-x:hidden;font-family:sans-serif}body{margin:0;color:var(--main-foreground-color);background-color:var(--background-color);overflow:hidden;--frame-width: 1200px;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center;align-content:center;align-items:center;--scale: 1}p{margin-top:0;margin-bottom:10px}img{max-width:100%;vertical-align:middle;display:inline-block}.inter{font-family:Inter,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.fira-code{font-family:Fira Code,monospace}#frame{width:calc(100% - 3rem);max-width:var(--frame-width);height:fit-content;margin-left:1.5rem;margin-right:1.5rem}#nav-bar{display:flex;position:fixed;top:0;width:100%;z-index:20;align-items:center;align-content:center;flex-wrap:nowrap;flex-direction:column;justify-content:center;height:fit-content;font-weight:600;transition:top .3s;background-color:rgba(var(--background-color-values),.5);border-bottom:1px solid rgba(var(--background-color-values),.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-bar-hidden{top:-91px!important}#nav-bar-content{display:flex;justify-content:space-between;position:relative;align-items:center;width:calc(100% - 3rem);max-width:var(--frame-width);height:90px}#drop-down-menu{height:54px;width:131px;overflow:hidden;display:flex;flex-direction:row-reverse;flex-wrap:nowrap;align-content:center;justify-content:flex-start;align-items:center;top:106px;gap:1rem;padding:1rem;transition:width .15s,padding .15s}#drop-down-menu a{text-decoration:none;color:inherit}.drop-down-menu-hidden{width:0px!important;padding:0!important}.nav-bar-list{height:100%;height:calc(100% - 2px);display:flex;flex-direction:row;justify-content:flex-end;align-items:center;text-align:center;gap:1rem;list-style:none;margin:0;padding:0}.nav-bar-button{display:flex;justify-content:center;align-items:center;aspect-ratio:1/1;width:auto;color:inherit;border:none;padding:0;font:inherit;cursor:pointer;outline:inherit;background:none}#hero-holder{width:100%;height:500px;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}#hero-text-holder{line-height:20px;font-size:16px;width:100%;z-index:19}#hero-text-holder-inner{display:flex;flex-direction:column;flex-wrap:nowrap;margin-top:3.5rem}.div-block{grid-row-gap:10px;flex-direction:column;align-items:flex-start;display:flex}.header-text{width:auto;max-width:675px;grid-column-gap:16px;grid-row-gap:35px;flex-direction:column;grid-template-rows:auto auto auto auto;grid-template-columns:1fr;grid-auto-columns:1fr;align-items:flex-start;justify-items:start;margin-left:0;margin-right:auto;padding-left:0;display:flex;position:relative;overflow:visible}.pre-heading{color:var(--main-foreground-color);padding-top:0;padding-left:2.5px;display:inline-block;overflow:visible;font-size:1rem;line-height:150%;margin-bottom:.79625rem;font-weight:700;text-align:center}#hero-text-holder-inner .pre-heading,#hero-text-holder-inner .heading{text-align:start}.heading{letter-spacing:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;font-weight:700;letter-spacing:-.05rem;font-size:3.4rem;line-height:110%;text-align:center}.sub-heading{width:86%;margin-bottom:0;padding-left:0;letter-spacing:0;margin-top:1.41875rem;line-height:130%;font-weight:600;font-size:1rem;text-align:center}#hero-text-holder-inner .sub-heading{text-align:start}.header-buttons{width:500px;height:auto;grid-column-gap:50px;grid-row-gap:16px;grid-template-rows:auto;grid-template-columns:1fr 1fr;grid-auto-columns:1fr;justify-content:flex-start;display:flex;flex-wrap:wrap;font-weight:600;margin-top:2.125625rem}.contact-button{width:250px;height:50px;color:var(--button-text-color);cursor:pointer;border-radius:7.5px;justify-content:center;align-items:center;padding:0;font-size:18px;display:flex;text-decoration:none;font-weight:600;transition:box-shadow .15s,transform .15s;background-image:linear-gradient(45deg,var(--gradient-start-color),var(--gradient-end-color))}.contact-button-arrow{height:30px;width:0px;margin-left:0;margin-right:0;overflow:hidden;line-break:strict;transition:width .15s,margin-left .15s;position:relative;display:flex;align-content:center;justify-content:flex-start;align-items:center;flex-direction:row;flex-wrap:nowrap}.arrow-text-holder{position:absolute;min-width:max-content}.contact-button:hover .contact-button-arrow{width:31px;margin-left:11px}.contact-button{width:250px;height:50px;color:var(--button-text-color);cursor:pointer;border-radius:7.5px;justify-content:center;align-items:center;padding:0;font-size:18px;display:flex;text-decoration:none;font-weight:600;transition:box-shadow .15s,transform .15s}.learn-more-container{grid-row-gap:7.5px;flex-direction:column;justify-content:center;align-self:center;align-items:flex-start;text-decoration:none;display:flex}.learn-more-link{grid-column-gap:15px;justify-content:center;align-items:center;display:flex;text-decoration:none;color:var(--main-foreground-color)}#hero-image-holder{height:100%;background-size:contain;background-repeat:no-repeat;background-position:bottom;position:relative;width:75%;display:flex;flex-direction:column;justify-content:center;color:#000}.badges-item{position:relative;display:flex;flex-direction:row;overflow:hidden;align-items:center;border-radius:9rem;padding:.35rem .7rem;text-transform:uppercase;color:var(--third-foreground-color);border:1px solid rgba(var(--main-foreground-color-values),.1)}.badges-item i{color:var(--main-foreground-color)}.badges-item i,.badges-item svg{display:flex;justify-content:center;align-items:center;margin-right:.7rem}.badges-item:after{content:"";position:absolute;top:0;left:0;height:100%;width:100%;z-index:-1;background:var(--background-secondary-color);opacity:100%}.badges-list{position:relative;z-index:1;display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;row-gap:.5rem;font-weight:600;font-size:12px;list-style:none;padding:0}.project-details-holder{flex-grow:0;flex-shrink:1;display:flex;flex-direction:column;max-width:570px;margin-right:0;margin:2rem;gap:3rem}.project-holder{display:flex;position:relative;flex-direction:row;flex-wrap:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:rgba(var(--background-third-color-values),.53);overflow:hidden;box-shadow:0 0 rgba(var(--main-foreground-color-values),.1),inset 0 0 0 1px rgba(var(--main-foreground-color-values),.05);transition:transform .15s,box-shadow .15s;margin-top:1rem;border-radius:7.5px}.project-link-overlay{position:absolute;left:0;top:0;bottom:0;right:0;cursor:pointer;z-index:4}.project-details-holder .project-title-holder{display:flex;flex-direction:row;align-items:center;gap:2rem}h3,h4{font-weight:600}h3{font-size:1.125rem;letter-spacing:-.01rem;margin:0}.project-holder h3{color:var(--secondary-foreground-color)}.project-title{display:block;unicode-bidi:isolate;font-size:1.125rem;letter-spacing:-.01rem;margin:0;font-weight:600;color:var(--secondary-foreground-color)}.source-code-link{display:flex;flex-direction:row;align-items:center;max-width:fit-content;font-weight:400;position:relative;z-index:5;padding:.5rem 0;margin:-.5rem 0;text-decoration:none}.source-code-link-button{display:flex;flex-direction:row;align-items:center;max-width:fit-content;font-weight:400;position:relative;color:var(--third-foreground-color);border-radius:99rem;border:1px solid var(--background-third-color);background:var(--background-third-color);text-decoration:none;gap:.35rem;font-size:.7rem;padding:.125rem .5rem}.project-details-holder p{font-size:1.75rem;line-height:1.2;color:var(--main-foreground-color)}.project-right-side{position:relative;flex-grow:1;flex-shrink:0;width:30%}.project-image-holder{z-index:3;display:flex;overflow:hidden;flex-direction:column;justify-content:center;background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3csvg%20viewBox='0%200%2032%2032'%20width='16'%20height='16'%20fill='none'%20version='1.1'%20id='svg1'%20sodipodi:docname='dot-background-darker.svg'%20inkscape:version='1.4%20(e7c3feb100,%202024-10-09)'%20xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape'%20xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:svg='http://www.w3.org/2000/svg'%3e%3cdefs%20id='defs1'%20/%3e%3csodipodi:namedview%20id='namedview1'%20pagecolor='%23ffffff'%20bordercolor='%23000000'%20borderopacity='0.25'%20inkscape:showpageshadow='2'%20inkscape:pageopacity='0.0'%20inkscape:pagecheckerboard='0'%20inkscape:deskcolor='%23d1d1d1'%20inkscape:zoom='49.5625'%20inkscape:cx='8.0100883'%20inkscape:cy='8'%20inkscape:window-width='1920'%20inkscape:window-height='1011'%20inkscape:window-x='0'%20inkscape:window-y='0'%20inkscape:window-maximized='1'%20inkscape:current-layer='svg1'%20/%3e%3ccircle%20fill='rgb(0%200%200%20/%200.2)'%20id='pattern-circle'%20cx='10'%20cy='10'%20r='1.6257413380501518'%20inkscape:label='pattern-circle'%20style='fill:%23000000;fill-opacity:1;stroke:%23000000;stroke-opacity:1;opacity:0.3'%20/%3e%3c/svg%3e")}.project-image-holder img{transition:transform .15s;width:100%;max-width:300px;margin-right:4%}.project-image-holder img{position:absolute!important;right:0}.markdown-heading{width:100%;margin-top:4rem}.markdown-heading h2{padding-top:0;padding-bottom:.3em;margin:0;margin-bottom:1rem;font-weight:600;line-height:1.25;margin-top:5rem;font-size:1.75em}.markdown-body{font-size:1rem;line-height:1.5;word-wrap:break-word}.markdown-body ul,.markdown-body ol{padding-left:2rem;font-weight:700}.markdown-body h3{margin-bottom:1rem;font-weight:600;font-size:1.55em;line-height:2.5rem}.markdown-body p{margin-top:0;margin-bottom:1rem}#footer{margin-top:6rem;margin-bottom:1.25rem;width:100%;height:fit-content;display:flex;flex-direction:row;justify-content:space-between;border-top:1px solid rgba(var(--main-foreground-color-values),.3);padding-top:1.25rem;font-size:.725rem}#footer a{color:inherit;text-decoration:none}#threejs-canvas,#phone-standin{position:absolute;right:-42px;margin-top:10px}.logo{width:40px;min-width:40px;height:40px;background-color:var(--main-foreground-color);display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center;border-radius:6px;color:var(--background-color);font-size:1.5rem;line-height:1.5rem;text-decoration:none}#about-me-holder{width:100%;display:flex;flex-direction:row;height:fit-content;gap:3rem;position:relative;overflow:hidden}#about-me-picture-holder{width:40%;overflow:hidden;position:relative;border-radius:7.5px;display:flex}#about-me-picture{width:100%;height:1000px;position:absolute;background-position-x:center;background-repeat:no-repeat;background-image:url(/assets/headshot_uncropped_extra-CdGMCALD.avif)}#about-me-text-holder{width:60%;height:fit-content;gap:5rem;display:flex;flex-direction:column;gap:4rem}#about-me-text-holder h3{line-height:1.4rem;margin-bottom:1.55rem;margin-bottom:1.25rem}.hidden{display:none!important}.skills-item{position:relative;display:flex;flex-direction:row;overflow:hidden;align-items:center;border-radius:.5rem;border:1px solid rgba(var(--main-foreground-color-values),.1);padding:.5rem 1rem;color:rgba(var(--background-color-values),1);font-weight:500}.skills-item i{color:rgba(var(--background-color-values),1)}.skills-item i,.skills-item svg{display:flex;justify-content:center;align-items:center;margin-right:.7rem}.skills-item:after{content:"";position:absolute;top:0;left:0;height:100%;width:100%;z-index:-1;opacity:100%;background:rgba(var(--main-foreground-color-values),1)}.skills-list{position:relative;z-index:1;display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem;row-gap:.5rem;list-style:none;padding:0;padding-left:0!important;font-size:.9rem;margin-bottom:0;margin-top:0}.about-me-skills{border-radius:7.5px;font-size:1rem;display:flex;flex-direction:column;gap:2rem;gap:1.5rem}.about-me-skills-text p{margin-bottom:0;color:var(--third-foreground-color)}.about-me-picture-border{display:flex;width:100%;z-index:10;border-radius:7.5px}.option2.markdown-heading h2{margin-top:5rem;border:none;font-size:1.75em}.spacer{height:90px}#projects-header{width:100%;height:500px;display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:center}.all-projects-link{margin-top:1rem}.all-projects-link a{color:inherit;text-decoration:none}.project-holder:hover{box-shadow:0 0 0 3px var(--project-shadow-color),inset 0 0 0 1px rgba(var(--main-foreground-color-values),.1)}.project-holder:hover .project-image-holder img{transform:scale(1.01)}@media (max-width: 920px){#hero-holder{height:fit-content;flex-direction:column;align-content:center;align-items:center}#hero-text-holder-inner{align-items:center}#hero-text-holder{margin-right:0;text-align:center!important}#hero-text-holder-inner .heading,#hero-text-holder-inner .pre-heading,#hero-text-holder-inner .sub-heading{text-align:center!important}#hero-image-holder{width:100%;height:100%;min-height:580px!important;display:flex;flex-direction:row;justify-content:center}#threejs-canvas,#phone-standin{right:auto;left:auto;margin:24px auto auto}#about-me-holder{flex-direction:column!important}#about-me-picture-holder{height:500px!important;width:100%!important}#about-me-text-holder{width:100%!important}.source-code-link{font-size:16px}}@media (max-width: 750px){.right-filler{display:none!important}.project-image-holder{justify-content:start!important}.project-image-holder img{width:64px!important;margin:1rem}}@media (max-width: 546px){.header-buttons{width:min-content;justify-content:center!important;flex-wrap:wrap!important}}@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(/assets/Inter-Regular-B0QUfDW0.woff2) format("woff2");unicode-range:U+0020-007F}@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(/assets/Inter-SemiBold-_JLwM7Yv.woff2) format("woff2");unicode-range:U+0020-007F}@font-face{font-family:Inter;font-weight:700;font-display:swap;src:url(/assets/Inter-Bold-CytjP_7U.woff2) format("woff2");unicode-range:U+0020-007F}@font-face{font-family:Fira Code;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/FiraCode-VF-Bc8wnsZt.woff2) format("woff2-variations")}.masked{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-image:linear-gradient(to right,transparent,black 30%);mask-image:linear-gradient(to right,transparent,black 30%)}.gradient-text{background-image:linear-gradient(45deg,var(--gradient-start-color),var(--gradient-end-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:inline}
