.HeroSection-module__OPGEAW__section{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.HeroSection-module__OPGEAW__grid{pointer-events:none;background-image:linear-gradient(to right, rgb(from var(--foreground) r g b / var(--grid-opacity)) 1px, transparent 1px), linear-gradient(to bottom, rgb(from var(--foreground) r g b / var(--grid-opacity)) 1px, transparent 1px);background-size:40px 40px;position:absolute;inset:0}.HeroSection-module__OPGEAW__decorations{pointer-events:none;position:absolute;inset:0;overflow:hidden}.HeroSection-module__OPGEAW__decorSquare{border:1px solid color-mix(in srgb, var(--tech-react) 20%, transparent);border-radius:var(--radius-lg);width:16rem;height:16rem;position:absolute;top:5rem;right:10%}.HeroSection-module__OPGEAW__decorCircle{border:1px solid color-mix(in srgb, var(--tech-python) 20%, transparent);border-radius:9999px;width:12rem;height:12rem;position:absolute;bottom:5rem;left:15%}.HeroSection-module__OPGEAW__decorBraces{color:color-mix(in srgb, var(--tech-fastapi) 5%, transparent);-webkit-user-select:none;user-select:none;font-family:JetBrains Mono,monospace;font-size:6rem;position:absolute;top:33%;left:20%}.HeroSection-module__OPGEAW__content{z-index:10;text-align:center;max-width:64rem;margin:0 auto;padding:0 1.5rem;position:relative}@media (min-width:1024px){.HeroSection-module__OPGEAW__content{padding:0 2rem}}.HeroSection-module__OPGEAW__greeting{color:var(--muted-foreground);margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:.875rem}@media (min-width:768px){.HeroSection-module__OPGEAW__greeting{font-size:1rem}}.HeroSection-module__OPGEAW__greetingKeyword{color:var(--tech-fastapi)}.HeroSection-module__OPGEAW__greetingVar{color:var(--foreground)}.HeroSection-module__OPGEAW__greetingStr{color:var(--tech-react)}.HeroSection-module__OPGEAW__title{letter-spacing:-.025em;margin-bottom:1.5rem;font-family:JetBrains Mono,monospace;font-size:2.25rem;line-height:1.15}@media (min-width:768px){.HeroSection-module__OPGEAW__title{font-size:3.75rem}}@media (min-width:1024px){.HeroSection-module__OPGEAW__title{font-size:4.5rem}}.HeroSection-module__OPGEAW__titleAccent{color:var(--tech-react)}.HeroSection-module__OPGEAW__typewriter{justify-content:center;align-items:center;height:4rem;margin-bottom:2rem;display:flex}@media (min-width:768px){.HeroSection-module__OPGEAW__typewriter{height:3rem}}.HeroSection-module__OPGEAW__typewriterText{font-family:JetBrains Mono,monospace;font-size:1.25rem}@media (min-width:768px){.HeroSection-module__OPGEAW__typewriterText{font-size:1.5rem}}.HeroSection-module__OPGEAW__cursor{background-color:var(--tech-fastapi);width:2px;height:2rem;margin-left:4px;animation:1s step-end infinite HeroSection-module__OPGEAW__blink;display:inline-block}@media (min-width:768px){.HeroSection-module__OPGEAW__cursor{height:2.5rem}}@keyframes HeroSection-module__OPGEAW__blink{0%,to{opacity:1}50%{opacity:0}}.HeroSection-module__OPGEAW__description{color:var(--muted-foreground);max-width:40rem;margin:0 auto 3rem;font-size:1rem;line-height:1.75}@media (min-width:768px){.HeroSection-module__OPGEAW__description{font-size:1.125rem}}.HeroSection-module__OPGEAW__actions{flex-direction:column;justify-content:center;align-items:center;gap:1rem;margin-bottom:3rem;display:flex}@media (min-width:640px){.HeroSection-module__OPGEAW__actions{flex-direction:row}}.HeroSection-module__OPGEAW__primaryBtn{background-color:var(--primary);color:var(--primary-foreground);border-radius:var(--radius-md);align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;transition:opacity .2s;display:flex}.HeroSection-module__OPGEAW__primaryBtn:hover{opacity:.9}.HeroSection-module__OPGEAW__primaryBtn:hover .HeroSection-module__OPGEAW__arrowIcon{transform:translate(4px)}.HeroSection-module__OPGEAW__arrowIcon{transition:transform .2s}.HeroSection-module__OPGEAW__secondaryBtn{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--foreground);padding:.75rem 1.5rem;font-size:.875rem;transition:background-color .2s}.HeroSection-module__OPGEAW__secondaryBtn:hover{background-color:var(--accent)}.HeroSection-module__OPGEAW__socials{justify-content:center;align-items:center;gap:1.5rem;display:flex}.HeroSection-module__OPGEAW__socialLink{color:var(--muted-foreground);transition:color .2s}.HeroSection-module__OPGEAW__socialLink:hover{color:var(--foreground)}.HeroSection-module__OPGEAW__scrollIndicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.HeroSection-module__OPGEAW__scrollMouse{border:2px solid var(--muted-foreground);border-radius:9999px;justify-content:center;width:1.5rem;height:2.5rem;padding:.5rem;display:flex}.HeroSection-module__OPGEAW__scrollDot{background-color:var(--muted-foreground);border-radius:9999px;width:4px;height:8px}
.TechStack-module__lnYEJG__section{padding:6rem 1.5rem}@media (min-width:1024px){.TechStack-module__lnYEJG__section{padding:6rem 2rem}}.TechStack-module__lnYEJG__inner{max-width:72rem;margin:0 auto}.TechStack-module__lnYEJG__heading{text-align:center;margin-bottom:4rem}.TechStack-module__lnYEJG__title{margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:1.875rem}@media (min-width:768px){.TechStack-module__lnYEJG__title{font-size:2.25rem}}.TechStack-module__lnYEJG__titleBrace{color:var(--tech-fastapi)}.TechStack-module__lnYEJG__titleKey{color:var(--foreground)}.TechStack-module__lnYEJG__titleColon{color:var(--muted-foreground)}.TechStack-module__lnYEJG__titleArr{color:var(--tech-react)}.TechStack-module__lnYEJG__subtitle{color:var(--muted-foreground);font-size:1rem}.TechStack-module__lnYEJG__grid{grid-template-columns:1fr;gap:2rem;display:grid}@media (min-width:768px){.TechStack-module__lnYEJG__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.TechStack-module__lnYEJG__grid{grid-template-columns:repeat(4,1fr)}}.TechStack-module__lnYEJG__categoryTitle{color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:.75rem}.TechStack-module__lnYEJG__categoryTitleAccent{color:var(--tech-react)}.TechStack-module__lnYEJG__techList{flex-direction:column;gap:.75rem;display:flex}.TechStack-module__lnYEJG__techCard{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;padding:1rem;transition:border-color .2s}.TechStack-module__lnYEJG__techCard:hover{border-color:var(--tech-color,var(--tech-react))}.TechStack-module__lnYEJG__techCardHeader{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.TechStack-module__lnYEJG__techName{font-family:JetBrains Mono,monospace;font-size:.875rem}.TechStack-module__lnYEJG__techDot{border-radius:9999px;flex-shrink:0;width:8px;height:8px}.TechStack-module__lnYEJG__progressTrack{background-color:var(--muted);border-radius:9999px;height:4px;overflow:hidden}.TechStack-module__lnYEJG__progressFill{transform-origin:0;border-radius:9999px;height:100%}.TechStack-module__lnYEJG__techDesc{color:var(--muted-foreground);margin-top:.5rem;font-size:.75rem;overflow:hidden}.TechStack-module__lnYEJG__terminal{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-top:4rem;overflow:hidden}.TechStack-module__lnYEJG__terminalBar{background-color:var(--muted);align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.TechStack-module__lnYEJG__terminalDots{gap:.5rem;display:flex}.TechStack-module__lnYEJG__dot{border-radius:9999px;width:12px;height:12px}.TechStack-module__lnYEJG__dotRed{background-color:#ff5f56}.TechStack-module__lnYEJG__dotYellow{background-color:#ffbd2e}.TechStack-module__lnYEJG__dotGreen{background-color:#27c93f}.TechStack-module__lnYEJG__terminalFilename{color:var(--muted-foreground);margin-left:.5rem;font-family:JetBrains Mono,monospace;font-size:.75rem}.TechStack-module__lnYEJG__terminalBody{padding:1.5rem;font-family:JetBrains Mono,monospace;font-size:.875rem}.TechStack-module__lnYEJG__codeLine{flex-wrap:wrap;gap:.25rem;line-height:1.75;display:flex}.TechStack-module__lnYEJG__codeIndent{padding-left:2rem}.TechStack-module__lnYEJG__kwFrom,.TechStack-module__lnYEJG__kwImport,.TechStack-module__lnYEJG__kwReturn,.TechStack-module__lnYEJG__kwAsync,.TechStack-module__lnYEJG__kwDef,.TechStack-module__lnYEJG__kwAsync,.TechStack-module__lnYEJG__kwDef{color:var(--syntax-keyword)}.TechStack-module__lnYEJG__ident{color:var(--foreground)}.TechStack-module__lnYEJG__fn{color:var(--syntax-function)}.TechStack-module__lnYEJG__str{color:var(--syntax-string)}.TechStack-module__lnYEJG__op{color:var(--syntax-operator)}.TechStack-module__lnYEJG__blank{height:1rem}
.FeaturedProjects-module__OwFphq__section{background-color:color-mix(in srgb, var(--muted) 30%, transparent);padding:6rem 1.5rem}@media (min-width:1024px){.FeaturedProjects-module__OwFphq__section{padding:6rem 2rem}}.FeaturedProjects-module__OwFphq__inner{max-width:72rem;margin:0 auto}.FeaturedProjects-module__OwFphq__heading{text-align:center;margin-bottom:4rem}.FeaturedProjects-module__OwFphq__title{margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:1.875rem}@media (min-width:768px){.FeaturedProjects-module__OwFphq__title{font-size:2.25rem}}.FeaturedProjects-module__OwFphq__titleAccent{color:var(--tech-fastapi)}.FeaturedProjects-module__OwFphq__subtitle{color:var(--muted-foreground)}.FeaturedProjects-module__OwFphq__list{flex-direction:column;gap:2rem;display:flex}.FeaturedProjects-module__OwFphq__card{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color .2s;position:relative;overflow:hidden}.FeaturedProjects-module__OwFphq__stretchedLink{color:inherit;text-decoration:none}.FeaturedProjects-module__OwFphq__stretchedLink:after{content:"";z-index:0;position:absolute;inset:0}.FeaturedProjects-module__OwFphq__card:hover{border-color:color-mix(in srgb, var(--tech-react) 50%, transparent)}.FeaturedProjects-module__OwFphq__cardInner{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem;display:grid}@media (min-width:768px){.FeaturedProjects-module__OwFphq__cardInner{grid-template-columns:1fr 1fr}}.FeaturedProjects-module__OwFphq__mockup{z-index:1;background-color:color-mix(in srgb, var(--muted) 50%, transparent);border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--border) 50%, transparent);aspect-ratio:16/9;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.FeaturedProjects-module__OwFphq__mockupBar{background-color:var(--muted);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;height:2rem;padding:0 .75rem;display:flex;position:absolute;top:0;left:0;right:0}.FeaturedProjects-module__OwFphq__mockupDots{gap:.375rem;display:flex}.FeaturedProjects-module__OwFphq__mockupDot{border-radius:9999px;width:10px;height:10px}.FeaturedProjects-module__OwFphq__mockupUrl{flex:1;justify-content:center;align-items:center;display:flex}.FeaturedProjects-module__OwFphq__mockupUrlText{background-color:color-mix(in srgb, var(--background) 50%, transparent);border-radius:var(--radius-sm);color:var(--muted-foreground);padding:.125rem .5rem;font-family:JetBrains Mono,monospace;font-size:.625rem}.FeaturedProjects-module__OwFphq__mockupContent{text-align:center;justify-content:center;align-items:center;width:100%;height:100%;margin-top:2rem;padding:1rem;display:flex}.FeaturedProjects-module__OwFphq__mockupIcon{color:color-mix(in srgb, var(--muted-foreground) 50%, transparent);margin:0 auto .5rem;display:block}.FeaturedProjects-module__OwFphq__mockupTitle{color:var(--muted-foreground);font-family:JetBrains Mono,monospace;font-size:.75rem}.FeaturedProjects-module__OwFphq__mockupOverlay{background:linear-gradient(to top, color-mix(in srgb, var(--background) 80%, transparent), transparent);opacity:0;justify-content:center;align-items:flex-end;padding-bottom:1rem;transition:opacity .2s;display:flex;position:absolute;inset:0}.FeaturedProjects-module__OwFphq__card:hover .FeaturedProjects-module__OwFphq__mockupOverlay{opacity:1}.FeaturedProjects-module__OwFphq__mockupOverlayText{color:var(--foreground);font-family:JetBrains Mono,monospace;font-size:.75rem}.FeaturedProjects-module__OwFphq__info{flex-direction:column;justify-content:space-between;display:flex}.FeaturedProjects-module__OwFphq__projectTitle{margin-bottom:.75rem;font-family:JetBrains Mono,monospace;font-size:1.25rem;transition:color .2s}.FeaturedProjects-module__OwFphq__card:hover .FeaturedProjects-module__OwFphq__projectTitle{color:var(--tech-react)}.FeaturedProjects-module__OwFphq__projectDesc{color:var(--muted-foreground);margin-bottom:1rem;font-size:.875rem;line-height:1.6}.FeaturedProjects-module__OwFphq__features{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.FeaturedProjects-module__OwFphq__feature{align-items:flex-start;gap:.5rem;font-size:.75rem;display:flex}.FeaturedProjects-module__OwFphq__featureArrow{color:var(--tech-fastapi);flex-shrink:0;margin-top:1px}.FeaturedProjects-module__OwFphq__featureText{color:var(--muted-foreground)}.FeaturedProjects-module__OwFphq__tags{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.FeaturedProjects-module__OwFphq__tag{border-radius:var(--radius-sm);border:1px solid;padding:.25rem .5rem;font-family:JetBrains Mono,monospace;font-size:.75rem}.FeaturedProjects-module__OwFphq__links{z-index:1;align-items:center;gap:1rem;display:flex;position:relative}.FeaturedProjects-module__OwFphq__link{color:var(--muted-foreground);align-items:center;gap:.25rem;font-size:.875rem;transition:color .2s;display:flex}.FeaturedProjects-module__OwFphq__link:hover{color:var(--foreground)}.FeaturedProjects-module__OwFphq__linkLabel{font-family:JetBrains Mono,monospace;font-size:.75rem}
.AboutSection-module__lnD-gq__section{padding:6rem 1.5rem}@media (min-width:1024px){.AboutSection-module__lnD-gq__section{padding:6rem 2rem}}.AboutSection-module__lnD-gq__inner{max-width:72rem;margin:0 auto}.AboutSection-module__lnD-gq__heading{text-align:center;margin-bottom:4rem}.AboutSection-module__lnD-gq__title{margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:1.875rem}@media (min-width:768px){.AboutSection-module__lnD-gq__title{font-size:2.25rem}}.AboutSection-module__lnD-gq__titleKeyword{color:var(--tech-fastapi)}.AboutSection-module__lnD-gq__titleClass{color:var(--foreground)}.AboutSection-module__lnD-gq__titleColon,.AboutSection-module__lnD-gq__subtitle{color:var(--muted-foreground)}.AboutSection-module__lnD-gq__intro{grid-template-columns:1fr;gap:3rem;margin-bottom:4rem;display:grid}@media (min-width:768px){.AboutSection-module__lnD-gq__intro{grid-template-columns:1fr 1fr}}.AboutSection-module__lnD-gq__colTitle{margin-bottom:1rem;font-family:JetBrains Mono,monospace;font-size:1.25rem}.AboutSection-module__lnD-gq__colTitleAccent{color:var(--tech-react)}.AboutSection-module__lnD-gq__textBlock{color:var(--muted-foreground);flex-direction:column;gap:1rem;line-height:1.75;display:flex}.AboutSection-module__lnD-gq__interests{flex-direction:column;gap:.75rem;display:flex}.AboutSection-module__lnD-gq__interestCard{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;transition:border-color .2s}.AboutSection-module__lnD-gq__interestCard:hover{border-color:color-mix(in srgb, var(--tech-react) 50%, transparent)}.AboutSection-module__lnD-gq__interestTitle{margin-bottom:.25rem;font-family:JetBrains Mono,monospace;font-size:.875rem}.AboutSection-module__lnD-gq__interestDesc{color:var(--muted-foreground);font-size:.75rem}.AboutSection-module__lnD-gq__timelineTitle{text-align:center;margin-bottom:2rem;font-family:JetBrains Mono,monospace;font-size:1.25rem}.AboutSection-module__lnD-gq__timelineTitleAccent{color:var(--tech-react)}.AboutSection-module__lnD-gq__timelineWrapper{position:relative}.AboutSection-module__lnD-gq__timelineLine{background-color:var(--border);width:1px;position:absolute;top:0;bottom:0;left:2rem}@media (min-width:768px){.AboutSection-module__lnD-gq__timelineLine{left:50%}}.AboutSection-module__lnD-gq__timelineList{flex-direction:column;gap:2rem;display:flex}.AboutSection-module__lnD-gq__item{align-items:flex-start;gap:2rem;display:flex;position:relative}@media (min-width:768px){.AboutSection-module__lnD-gq__item{flex-direction:row}.AboutSection-module__lnD-gq__itemReverse{flex-direction:row-reverse}}.AboutSection-module__lnD-gq__itemContent{flex:1}@media (min-width:768px){.AboutSection-module__lnD-gq__item .AboutSection-module__lnD-gq__itemContent{text-align:right}.AboutSection-module__lnD-gq__itemReverse .AboutSection-module__lnD-gq__itemContent{text-align:left}}.AboutSection-module__lnD-gq__itemCard{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;transition:border-color .2s}.AboutSection-module__lnD-gq__itemCard:hover{border-color:color-mix(in srgb, var(--tech-react) 50%, transparent)}.AboutSection-module__lnD-gq__itemDate{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}@media (min-width:768px){.AboutSection-module__lnD-gq__item .AboutSection-module__lnD-gq__itemDate{justify-content:flex-end}.AboutSection-module__lnD-gq__itemReverse .AboutSection-module__lnD-gq__itemDate{justify-content:flex-start}}.AboutSection-module__lnD-gq__itemDateIcon{color:var(--tech-fastapi);flex-shrink:0}.AboutSection-module__lnD-gq__itemYear{color:var(--tech-fastapi);font-family:JetBrains Mono,monospace;font-size:.875rem}.AboutSection-module__lnD-gq__itemTitle{margin-bottom:.25rem;font-family:JetBrains Mono,monospace}.AboutSection-module__lnD-gq__itemOrg{color:var(--muted-foreground);margin-bottom:.5rem;font-size:.875rem}.AboutSection-module__lnD-gq__itemDesc{color:var(--muted-foreground);font-size:.875rem;line-height:1.6}.AboutSection-module__lnD-gq__itemTags{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.AboutSection-module__lnD-gq__itemTag{background-color:var(--card);border:1px solid var(--border);border-radius:9999px;align-items:center;padding:.125rem .625rem;font-size:.75rem;transition:border-color .2s;display:inline-flex}.AboutSection-module__lnD-gq__itemTag:hover{border-color:color-mix(in srgb, var(--tech-fastapi) 50%, transparent)}.AboutSection-module__lnD-gq__itemIcon{background-color:var(--background);border:2px solid var(--border);border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;width:4rem;height:4rem;display:flex;position:absolute;left:2rem;transform:translate(-50%)}@media (min-width:768px){.AboutSection-module__lnD-gq__itemIcon{left:50%}}.AboutSection-module__lnD-gq__iconWork{color:var(--tech-react)}.AboutSection-module__lnD-gq__iconEdu{color:var(--tech-python)}.AboutSection-module__lnD-gq__itemSpacer{flex:1;display:none}@media (min-width:768px){.AboutSection-module__lnD-gq__itemSpacer{display:block}}
