@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/8c6f6f0aec3d26a6.3nkdcx54e-f8a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/1eec9d9ffa9353d6.0cj1i4z6mq3nk.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/a743aa2c0cf8fb8f.09n7alw1mieeg.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/10995ca37aac8da2.24978ju28eow5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/6c734a20b6a058c6.3vqrh_vi2hmth.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/dfb4b19a8d76831e.13o6itka4oty-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(../media/f67ad414ed34149c.p.009t6yts_a2k4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.inter_1e4b9b2-module__Pf0Nwq__className{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.inter_1e4b9b2-module__Pf0Nwq__variable{--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif}
@font-face{font-family:pixelFont;src:url(../media/ZPixelMono-s.p.3o83fduwc3f2b.woff2)format("woff2");font-display:swap}@font-face{font-family:pixelFont Fallback;src:local(Arial);ascent-override:74.15%;descent-override:22.82%;line-gap-override:4.11%;size-adjust:109.58%}.pixelfont_f32c93b2-module__gilBfW__className{font-family:pixelFont,pixelFont Fallback,Courier New,Courier,monospace}.pixelfont_f32c93b2-module__gilBfW__variable{--font-pixel:"pixelFont", "pixelFont Fallback", Courier New, Courier, monospace}
:root{--white-oklch-val:98% 0 0;--black-oklch-val:0% 0 0;--accent-oklch-val:77% .2 177;--white:oklch(var(--white-oklch-val) / 1);--black:oklch(var(--black-oklch-val) / 1);--primary:var(--white);--foreground:var(--white);--background:var(--black);--muted-foreground:oklch(var(--white-oklch-val) / .5);--accent:oklch(var(--accent-oklch-val) / 1);--accent-glow:oklch(var(--accent-oklch-val) / .025);--border:oklch(var(--white-oklch-val) / .125);--container-2xl:42rem;--transition-default:all .2s cubic-bezier(.4, 0, .2, 1);--transition-slow:all .7s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--background);color:var(--foreground);font-family:var(--font-pixel);font-feature-settings:normal;font-variation-settings:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.725}h1{font-size:2rem;font-weight:600}h2{font-size:1.875rem;font-weight:500}h3{font-size:1.5rem}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;cursor:pointer}.container{max-width:var(--container-2xl);margin:0 auto;padding:6rem 1.5rem}main{flex-direction:column;justify-content:center;min-height:100vh;display:flex}.homepage{padding-left:min(20dvw,6rem)}.portfolio-page{font-family:var(--font-sans);padding-top:2rem}@media (min-width:768px){.container{padding-top:8rem;padding-bottom:8rem}}.home-nav-list{max-width:20rem;color:var(--muted-foreground);flex-direction:column;gap:calc(2rem + .25vh);list-style:none;display:flex}.home-nav-item{display:block}.home-nav-link{color:oklch(var(--white-oklch-val) / .725);transition:var(--transition-default);align-items:center;gap:1rem;display:flex}.home-nav-link:hover{color:var(--accent);transform:translateY(-2px)}header{margin-bottom:4rem}.top-bar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2.5rem;padding-bottom:1rem;display:flex}.back-link{color:var(--muted-foreground);transition:var(--transition-default);align-items:center;gap:.375rem;font-size:.875rem;display:inline-flex}.back-link:hover{color:var(--accent)}.profile-container{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;display:flex}@media (min-width:640px){.profile-container{flex-direction:row;gap:1.25rem}}.avatar-wrapper{border:1px solid var(--border);background-color:#121212;border-radius:9999px;flex-shrink:0;width:9rem;height:9rem;position:relative;overflow:hidden}.avatar-img{object-fit:cover;width:100%;height:100%;transition:var(--transition-slow)}.avatar-wrapper:hover .avatar-img{filter:grayscale()}.profile-info{text-align:center;flex-direction:column;align-items:center;display:flex}@media (min-width:640px){.profile-info{text-align:start;align-items:start}}.profile-name{letter-spacing:-.025em;color:var(--primary);line-height:1.25}.profile-tagline{color:var(--muted-foreground);margin-top:.25rem;line-height:1.625}section{margin-bottom:4.5rem}section:last-child{margin-bottom:0}.section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--muted-foreground);margin-bottom:1.75rem;font-size:.875rem;font-weight:600}.section-title.mb-4{margin-bottom:1rem}.about-text{color:var(--foreground);line-height:1.625}.list-container{flex-direction:column;gap:2.5rem;display:flex}.grid-item{transition:var(--transition-default);grid-template-columns:1fr;gap:.75rem;display:grid}@media (min-width:640px){.grid-item{grid-template-columns:120px 1fr;gap:2rem}}.grid-left{color:oklch(var(--white-oklch-val) / .35);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:400}.grid-right{flex-direction:column;display:flex}.item-header{color:var(--primary);margin-bottom:.25rem;font-size:1rem;font-weight:500}.item-link{color:var(--primary);transition:var(--transition-default);align-items:center;gap:.125rem;display:inline-flex}.item-link:hover{color:var(--accent)}.item-desc-and-tags{color:var(--foreground);white-space:pre-line;flex-direction:column;gap:.5rem;font-size:.875rem;line-height:1.625;display:flex}.tags-container{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.tag-badge{background-color:var(--accent-glow);color:var(--accent);border:1px solid oklch(var(--accent-oklch-val) / .15);letter-spacing:.02em;text-transform:none;border-radius:9999px;align-items:center;padding:.25rem .625rem;font-size:.6875rem;font-weight:700;display:inline-flex}.icon-arrow{width:.875rem;height:.875rem;transition:var(--transition-default);opacity:.6}.item-header:hover .icon-arrow,.item-link:hover .icon-arrow,.contact-link:hover .icon-arrow,.home-nav-link:hover .icon-arrow{opacity:1;transform:translate(.125rem,-.125rem)}.achievement-item{margin-bottom:1.5rem}.achievement-item:last-child{margin-bottom:0}.achievement-title{color:var(--primary);margin-bottom:.25rem;font-size:1rem;font-weight:500}.achievement-desc{color:var(--foreground);font-size:.9375rem}.contact-container{flex-direction:column;gap:1rem;font-size:.875rem;display:flex}.contact-row{grid-template-columns:120px 1fr;align-items:baseline;gap:2rem;display:grid}.contact-label{color:oklch(var(--white-oklch-val) / .35);font-size:.875rem}.contact-link{color:var(--primary);transition:var(--transition-default);align-items:center;gap:.25rem;width:fit-content;display:inline-flex}.contact-link:hover{color:var(--accent)}.subprojects-section{border-top:1px solid var(--border);margin-top:5rem;padding-top:3rem}.transition-colors{transition:var(--transition-default)}.experience-intro{color:var(--muted-foreground);margin-bottom:.75rem;font-size:.875rem;line-height:1.6}ul.sub-experiences-list{flex-direction:column;gap:1.75rem;margin:0;padding:0;list-style:none;display:inline-flex}.sub-experience-item{color:var(--foreground);font-size:.9375rem;line-height:1.625;position:relative}.sub-experience-title{color:var(--primary);font-weight:600}.sub-experience-desc{color:oklch(var(--white-oklch-val) / .7)}.text-muted-foreground{color:var(--muted-foreground)}.text-sm{font-size:.875rem}.mt-0\.5{margin-top:.125rem}.mb-4{margin-bottom:1rem}
