@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_188709{font-family:Geist,Geist Fallback;font-style:normal}.__variable_188709{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:League Spartan;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d679ba9092d58b1c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:League Spartan;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8f831e7b4b06b511-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:League Spartan;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c441a7a257a6e5bf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:League Spartan;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d679ba9092d58b1c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:League Spartan;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8f831e7b4b06b511-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:League Spartan;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/c441a7a257a6e5bf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:League Spartan;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d679ba9092d58b1c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:League Spartan;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8f831e7b4b06b511-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:League Spartan;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c441a7a257a6e5bf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:League Spartan;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/d679ba9092d58b1c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:League Spartan;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8f831e7b4b06b511-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:League Spartan;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/c441a7a257a6e5bf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:League Spartan Fallback;src:local("Arial");ascent-override:75.47%;descent-override:23.72%;line-gap-override:0.00%;size-adjust:92.75%}.__className_e23e02{font-family:League Spartan,League Spartan Fallback;font-style:normal}.__variable_e23e02{--font-league-spartan:"League Spartan","League Spartan Fallback"}:root{--bg-primary:#0a0a0a;--bg-secondary:#121212;--bg-tertiary:#1a1a1a;--text-primary:#fff;--text-secondary:#b3b3b3;--accent-pink:#ff6fdb;--accent-violet:#9438c6;--accent-blue:#79beee;--accent-primary:var(--accent-violet);--accent-secondary:var(--accent-pink);--font-primary:var(--font-league-spartan),system-ui,sans-serif;--font-secondary:var(--font-geist-sans),system-ui,sans-serif;--font-mono:var(--font-geist-mono),monospace;--transition-fast:0.2s;--transition-medium:0.4s;--transition-slow:0.6s;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;transition:background-color 1s ease,color 1s ease,border-color 1s ease,box-shadow 1s ease}body,html{transition:background-color 1s ease,color 1s ease}*,:after,:before{transition:background-color 1s ease,color 1s ease,border-color 1s ease,box-shadow 1s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes holographicShimmer{0%{background-position:0 50%;filter:hue-rotate(0deg) brightness(1) saturate(1.1)}25%{background-position:50% 100%;filter:hue-rotate(10deg) brightness(1.1) saturate(1.2)}50%{background-position:100% 50%;filter:hue-rotate(20deg) brightness(1.2) saturate(1.3)}75%{background-position:50% 0;filter:hue-rotate(10deg) brightness(1.1) saturate(1.2)}to{background-position:0 50%;filter:hue-rotate(0deg) brightness(1) saturate(1.1)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-5px)}to{transform:translateY(0)}}@keyframes shine{0%{background-position:-100% -100%}25%{background-position:0 0}50%{background-position:100% 100%}75%{background-position:200% 200%}to{background-position:300% 300%}}@keyframes glowPulse{0%{box-shadow:0 15px 30px rgba(0,0,0,.3),0 0 20px 5px rgba(255,111,219,.3)}33%{box-shadow:0 15px 30px rgba(0,0,0,.3),0 0 20px 5px rgba(148,56,198,.3)}66%{box-shadow:0 15px 30px rgba(0,0,0,.3),0 0 20px 5px rgba(121,190,238,.3)}to{box-shadow:0 15px 30px rgba(0,0,0,.3),0 0 20px 5px rgba(255,111,219,.3)}}.animate-fadeIn{animation:fadeIn var(--transition-medium) ease-in-out}.animate-slideUp{animation:slideUp var(--transition-medium) ease-out}.animate-scaleIn{animation:scaleIn var(--transition-medium) ease-out}.animate-pulse{animation:pulse 2s infinite}.animate-holographic{animation:holographicShimmer 5s ease infinite}.animate-float{animation:float 6s ease-in-out infinite}.animate-shine{animation:shine 2s linear infinite}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.duration-fast{animation-duration:.3s}.duration-medium{animation-duration:.5s}.duration-slow{animation-duration:.8s}.ease-out-cubic{animation-timing-function:cubic-bezier(.19,1,.22,1)}.ease-in-out-cubic{animation-timing-function:cubic-bezier(.645,.045,.355,1)}html[data-theme=light] .iconWrapper,html[data-theme=light] .tool{background-color:hsla(0,0%,94%,.8)!important;box-shadow:0 2px 4px rgba(0,0,0,.1)!important}html[data-theme=light] .claudeIcon,html[data-theme=light] .cssIcon,html[data-theme=light] .cursorIcon,html[data-theme=light] .djangoIcon,html[data-theme=light] .expressIcon,html[data-theme=light] .firebaseIcon,html[data-theme=light] .flutterIcon,html[data-theme=light] .htmlIcon,html[data-theme=light] .javaIcon,html[data-theme=light] .jsIcon,html[data-theme=light] .mongodbIcon,html[data-theme=light] .nextjsIcon,html[data-theme=light] .nodeIcon,html[data-theme=light] .postgresqlIcon,html[data-theme=light] .pythonIcon,html[data-theme=light] .reactIcon,html[data-theme=light] .supabaseIcon,html[data-theme=light] .swiftIcon,html[data-theme=light] .tsIcon,html[data-theme=light] .vueIcon{filter:brightness(.8)!important}html[data-theme=light] .tooltipDescription,html[data-theme=light] .tooltipTitle{text-shadow:0 1px 2px hsla(0,0%,100%,.5)!important}html[data-theme=light] .skills.has-active-tooltip .skillsRow,html[data-theme=light] .skills.has-active-tooltip .softSkillsInToolbox,html[data-theme=light] .skills.has-active-tooltip h2,html[data-theme=light] .skills.has-active-tooltip h3{filter:blur(4px) brightness(.6)!important}html[data-theme=light] .tooltipContent{background-color:hsla(0,0%,100%,.9)!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;box-shadow:0 4px 15px rgba(0,0,0,.15)!important}html[data-theme=light] .activeIcon{filter:drop-shadow(0 0 12px rgba(0,0,0,.2))!important}html[data-theme=light] .downloadButton,html[data-theme=light] .projectLink,html[data-theme=light] .resumeButton{background-color:#000!important;color:#fff!important}html[data-theme=light] .downloadButton:hover,html[data-theme=light] .projectLink:hover,html[data-theme=light] .resumeButton:hover{background-color:#000!important;opacity:.9!important}html[data-theme=light] .projectCard{background-color:#fff!important;box-shadow:0 4px 15px rgba(0,0,0,.08)!important}html[data-theme=light] .projectCard h3{color:#2d2d2d!important}html[data-theme=light] .projectTags{background-color:#f0f0ed!important}html[data-theme=light] .projectTag{background-color:#e5e5e0!important;color:#2d2d2d!important}html[data-theme=light] .navContainer{background-color:hsla(60,18%,97%,.8)!important;box-shadow:0 2px 10px rgba(0,0,0,.05)!important}html[data-theme=light] .navItem{color:#5a5a5a!important}html[data-theme=light] .navItem.active,html[data-theme=light] .navItem:hover{color:#2d2d2d!important}html[data-theme=light] .contactCard,html[data-theme=light] .headerCard{background-color:#fff!important;box-shadow:0 4px 15px rgba(0,0,0,.08)!important}html[data-theme=light] .cardIcon,html[data-theme=light] .contactCard h2,html[data-theme=light] .contactCard p,html[data-theme=light] .contactForm label,html[data-theme=light] .contactInfo,html[data-theme=light] .contactText,html[data-theme=light] .headerCard h1,html[data-theme=light] .headerCard p{color:#000!important}html[data-theme=light] .contactForm input,html[data-theme=light] .contactForm select,html[data-theme=light] .contactForm textarea{background-color:#f8f8f5!important;border:1px solid rgba(0,0,0,.1)!important;color:#000!important}html[data-theme=light] .contactForm input:focus,html[data-theme=light] .contactForm select:focus,html[data-theme=light] .contactForm textarea:focus{border-color:var(--accent-violet)!important}html[data-theme=light] .socialLink{background-color:#f0f0ed!important;color:#000!important}html[data-theme=light] .socialIcon{color:#000!important}html[data-theme=light] .navItem.active{color:#000!important;font-weight:600!important}html[data-theme=light] .rightColumn::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2)!important}html[data-theme=light] code{background-color:#f0f0ed!important;color:#000!important}html[data-theme=light] .bentoBox{background-color:#fff!important;box-shadow:0 4px 15px rgba(0,0,0,.05)!important}html[data-theme=light] .profileCard{background-color:#fff!important;box-shadow:0 10px 30px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.05)!important}html[data-theme=light] .skills.has-active-tooltip .skillsRow,html[data-theme=light] .skills.has-active-tooltip .softSkillsInToolbox,html[data-theme=light] .skills.has-active-tooltip h2,html[data-theme=light] .skills.has-active-tooltip h3{filter:blur(4px) brightness(.5)!important}html[data-theme=light] .tooltipContent{background-color:transparent!important}html[data-theme=light] .tooltipDescription,html[data-theme=light] .tooltipTitle{color:#000!important;text-shadow:0 0 5px hsla(0,0%,100%,.9),0 0 10px hsla(0,0%,100%,.7)!important}html[data-theme=light] .downloadButton,html[data-theme=light] .resumeButton{background-color:#000!important;color:#fff!important;border:none!important}html[data-theme=light] .downloadButton:hover,html[data-theme=light] .resumeButton:hover{background-color:#000!important;opacity:.9!important}html[data-theme=light] .projectLink{background-color:#000!important;color:#fff!important;border:none!important}html[data-theme=light] .projectLink:hover{background-color:#000!important;opacity:.9!important}html[data-theme=light] .cardIcon,html[data-theme=light] .contactCard h2,html[data-theme=light] .contactCard p,html[data-theme=light] .contactForm input,html[data-theme=light] .contactForm label,html[data-theme=light] .contactForm select,html[data-theme=light] .contactForm textarea,html[data-theme=light] .contactInfo,html[data-theme=light] .contactText,html[data-theme=light] .headerCard h1,html[data-theme=light] .headerCard p,html[data-theme=light] .socialIcon,html[data-theme=light] .socialLink{color:#000!important}html[data-theme=light] .submitButton{background-color:#000!important;color:#fff!important;border:none!important}html[data-theme=light] .submitButton:hover{background-color:#000!important;opacity:.9!important}:root{transition:all 1.5s ease}body,html{transition:background-color 1.5s ease,color 1.5s ease}.bentoBox,.contactCard,.downloadButton,.headerCard,.iconWrapper,.navContainer,.profileCard,.projectCard,.projectLink,.resumeButton,.socialLink,.submitButton,.toggleThumb,.toggleTrack,.tool,a,article,aside,body,button,div,footer,h1,h2,h3,h4,h5,h6,header,input,label,li,main,nav,ol,p,section,select,span,textarea,ul{transition:background-color 1.5s ease,color 1.5s ease,border-color 1.5s ease,box-shadow 1.5s ease}.activeIcon,.activeIconContainer,.tooltipContent,.tooltipDescription,.tooltipTitle{transition:none!important}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;font-family:var(--font-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{overflow-x:hidden}body{color:var(--text-primary);background:var(--bg-primary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:700}a,h1,h2,h3,h4,h5,h6,p{font-family:var(--font-primary)}a{color:inherit;text-decoration:none;transition:color var(--transition-fast) ease}a:hover{color:var(--accent-primary)}code{font-family:var(--font-mono)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-4)}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}html{color-scheme:dark}}