@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/8a053b136321ec99-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:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/2a8fe189f1a8dd0c-s.p.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:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/c214ffb7f5362987-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:Archivo Fallback;src:local("Arial");ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;size-adjust:98.70%}.__className_7d15d2{font-family:Archivo,Archivo Fallback;font-style:normal}.__variable_7d15d2{--archivo:"Archivo","Archivo Fallback"}@font-face{font-family:Rubik Spray Paint;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/4209bcd132a3ae54-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Rubik Spray Paint;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9209f9a170875692-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Rubik Spray Paint;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6db6860cacf56af7-s.woff2) format("woff2");unicode-range:u+0307-0308,u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-family:Rubik Spray Paint;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/62abdf2e8c09aa70-s.p.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:Rubik Spray Paint;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/99a4c3bce988621b-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:Rubik Spray Paint Fallback;src:local("Arial");ascent-override:78.94%;descent-override:21.11%;line-gap-override:0.00%;size-adjust:118.44%}.__className_d39fc8{font-family:Rubik Spray Paint,Rubik Spray Paint Fallback;font-weight:400;font-style:normal}.__variable_d39fc8{--spray:"Rubik Spray Paint","Rubik Spray Paint Fallback"}@font-face{font-family:Saira Stencil One;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e5953b9f068beeec-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:Saira Stencil One;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3b0e9eef4de98dd1-s.p.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:Saira Stencil One;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f88829901089e674-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:Saira Stencil One Fallback;src:local("Arial");ascent-override:105.63%;descent-override:40.86%;line-gap-override:0.00%;size-adjust:107.45%}.__className_375495{font-family:Saira Stencil One,Saira Stencil One Fallback;font-weight:400;font-style:normal}.__variable_375495{--stencil:"Saira Stencil One","Saira Stencil One Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.p.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_fdaf1b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_fdaf1b{--jetbrains:"JetBrains Mono","JetBrains Mono Fallback"}:root{--bg:#151312;--bg-raised:#1d1a17;--line:rgba(236,232,225,0.1);--line-strong:rgba(236,232,225,0.24);--ink:#ece8e1;--ink-dim:#9a948b;--ink-faint:#645e56;--accent:#ff5f1f;--accent-ink:#151312;--font-sans:var(--archivo),sans-serif;--font-tag:var(--spray),cursive;--font-stencil:var(--stencil),sans-serif;--font-mono:var(--jetbrains),monospace;--pad:clamp(1.25rem,4vw,4rem)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 700 700' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='s'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008 0.011' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.08 0 0 0 0 0.07 0 0 0 0 0.06 0 0 0 0.32 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23s)'/%3E%3C/svg%3E");background-size:700px 700px;color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.55;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.9 0 0 0 0 0.88 0 0 0 0 0.85 0 0 0 0.04 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}header,main,nav{position:relative;z-index:1}.mono{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}.tag-font{font-weight:400}.hl,.tag-font{font-family:var(--font-tag)}.hl{color:var(--accent);font-size:1.08em;display:inline-block;transform:rotate(-1.5deg)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.1rem var(--pad);mix-blend-mode:difference}.nav-logo{font-family:var(--font-tag);font-size:1.25rem;transform:rotate(-3deg);display:inline-block}.nav-links{display:flex;gap:1.75rem}.nav-links a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.75;transition:opacity .25s}.nav-links a:hover{opacity:1}.nav-links .lang-switch{padding:.15em .5em;margin:-.15em 0;border:1px solid;border-radius:999px}@media (max-width:480px){.nav-links{gap:1.25rem}.nav-links .nav-optional{display:none}}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--pad);padding-bottom:clamp(2rem,5vh,4rem);position:relative;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 75% 55% at 72% 18%,rgba(255,95,31,.08),transparent 62%);overflow:hidden}.hero-top{top:4.5rem;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;color:var(--ink-dim)}.hero-top,.splat{position:absolute}.splat{width:clamp(150px,24vw,340px);right:6%;top:16%;color:var(--accent);opacity:.85;z-index:0;pointer-events:none;animation:splat-in .5s cubic-bezier(.16,1,.3,1) .9s both}@keyframes splat-in{0%{opacity:0;transform:scale(.6)}to{opacity:.85;transform:scale(1)}}.hero-name{font-family:var(--font-tag);font-size:clamp(3.2rem,12.5vw,11rem);line-height:.98;font-weight:400;text-transform:uppercase;transform:rotate(-2.5deg);transform-origin:left bottom;margin-bottom:clamp(1.8rem,4vh,3rem);position:relative;z-index:1}.hero-name em{font-style:normal;color:var(--accent)}.hero-name .line{display:block}.hero-name .line>span{display:inline-block;padding-right:.1em;animation:sprayed .9s cubic-bezier(.6,0,.3,1) both;-webkit-clip-path:inset(-20% 0 -20% 0);clip-path:inset(-20% 0 -20% 0)}.hero-name .line:nth-child(2){transform:translateX(.06em) rotate(.8deg)}.hero-name .line:nth-child(2)>span{animation-delay:.55s}@keyframes sprayed{0%{-webkit-clip-path:inset(-20% 100% -20% 0);clip-path:inset(-20% 100% -20% 0)}to{-webkit-clip-path:inset(-20% 0 -20% 0);clip-path:inset(-20% 0 -20% 0)}}@media (prefers-reduced-motion:reduce){.hero-name .line>span,.splat{animation:none;-webkit-clip-path:none;clip-path:none}}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;animation:fade 1s ease 1.1s both;position:relative;z-index:1}@keyframes fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-intro{max-width:34rem;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.5;color:var(--ink-dim)}.hero-intro strong{color:var(--ink);font-weight:500}.hero-meta{display:flex;flex-direction:column;gap:.45rem;color:var(--ink-dim);text-align:right}@media (max-width:640px){.hero-meta{text-align:left}.hero-top span:last-child{display:none}.splat{top:8%;right:2%}}.hero-meta .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:.5rem;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}section{padding:clamp(4.5rem,10vh,8rem) var(--pad);border-bottom:1px solid var(--line);position:relative;z-index:1}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:clamp(2.5rem,6vh,4.5rem)}.section-head h2{font-family:var(--font-stencil);font-size:clamp(1.9rem,3.8vw,3.2rem);font-weight:400;text-transform:uppercase;letter-spacing:.02em;line-height:1}.section-head .index{color:var(--ink-faint)}.project-list{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:4rem 1fr auto;align-items:baseline;grid-gap:1.5rem;gap:1.5rem;padding:clamp(1.4rem,3vh,2.2rem) .75rem;border-bottom:1px solid var(--line);position:relative;transition:background .35s ease,box-shadow .35s ease}.project-row:hover{background:var(--bg-raised);box-shadow:inset 4px 0 0 var(--accent)}.project-row .num{color:var(--ink-faint);transition:color .3s}.project-row:hover .num{color:var(--accent)}.project-name{font-size:clamp(1.5rem,4vw,2.8rem);font-weight:600;font-stretch:112%;text-transform:uppercase;letter-spacing:-.015em;line-height:1.1;transition:transform .35s cubic-bezier(.16,1,.3,1)}.project-row:hover .project-name{transform:translateX(.6rem)}.project-desc{margin-top:.35rem;color:var(--ink-dim);font-size:.95rem;max-width:40rem}.project-side{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.project-arrow,.project-tag{color:var(--ink-faint)}.project-arrow{font-size:1.4rem;transition:transform .35s cubic-bezier(.16,1,.3,1),color .3s}.project-row:hover .project-arrow{transform:translate(4px,-4px);color:var(--accent)}@media (max-width:640px){.project-row{grid-template-columns:2.4rem 1fr auto;gap:.9rem}.project-side .project-tag{display:none}}.xp-entry{display:grid;grid-template-columns:minmax(8rem,16rem) 1fr;grid-gap:2rem;gap:2rem;padding:clamp(1.8rem,4vh,2.75rem) 0;border-bottom:1px solid var(--line)}.xp-entry:first-of-type{border-top:1px solid var(--line)}@media (max-width:700px){.xp-entry{grid-template-columns:1fr;gap:.9rem}}.xp-when{color:var(--ink-faint);padding-top:.4rem}.xp-role{font-size:clamp(1.25rem,2.4vw,1.7rem);font-weight:600;font-stretch:110%}.xp-org{color:var(--accent);font-weight:500}.xp-summary{margin-top:.7rem;color:var(--ink-dim);font-size:.95rem;max-width:42rem}.xp-projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(16.5rem,1fr));grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);margin:clamp(1.8rem,4vh,2.75rem) 0}.xp-projects .reveal{display:grid;background:var(--bg)}.xp-card{padding:1.5rem;display:flex;flex-direction:column;gap:.6rem;height:100%;transition:background .3s}.xp-card:hover{background:var(--bg-raised)}.xp-card .num{color:var(--ink-faint)}.xp-card:hover .num{color:var(--accent)}.xp-card h3{font-size:1.05rem;font-weight:600;font-stretch:108%;line-height:1.3}.xp-card p{color:var(--ink-dim);font-size:.88rem;flex:1 1}.xp-card .tech{color:var(--accent);font-size:.66rem;opacity:.85}.skill-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));grid-gap:clamp(2rem,4vw,3.5rem);gap:clamp(2rem,4vw,3.5rem)}.skill-group h3{color:var(--ink-faint);margin-bottom:1.1rem;font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:.6rem}.chip{font-family:var(--font-mono);font-size:.74rem;font-weight:700;letter-spacing:.05em;padding:.42rem .85rem;border-radius:3px;background:var(--ink);color:var(--accent-ink);box-shadow:2px 3px 0 rgba(0,0,0,.45);transform:rotate(-1.6deg);transition:transform .2s ease}.chips .chip:nth-child(2n){transform:rotate(1.3deg)}.chips .chip:nth-child(3n){transform:rotate(-.5deg)}.chip:hover{transform:rotate(0deg) scale(1.06)}.chip.hot{background:var(--accent);color:var(--accent-ink)}.edu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));grid-gap:clamp(1.5rem,3vw,2.5rem);gap:clamp(1.5rem,3vw,2.5rem)}.edu-card{border:1px solid var(--line);padding:1.6rem;display:flex;flex-direction:column;gap:.55rem;position:relative;transition:border-color .3s}.edu-card:before{content:"";position:absolute;top:-11px;left:50%;width:92px;height:22px;background:rgba(236,232,225,.13);transform:translateX(-50%) rotate(-2deg);pointer-events:none}.edu-card:hover{border-color:var(--line-strong)}.edu-card .mono{color:var(--ink-faint)}.edu-card h3{font-size:1.12rem;font-weight:600;line-height:1.35}.edu-card p{color:var(--ink-dim);font-size:.9rem}.contact{border-bottom:none;padding-top:clamp(5rem,14vh,9rem);padding-bottom:clamp(2rem,5vh,3rem);background:radial-gradient(ellipse 70% 60% at 50% 115%,rgba(255,95,31,.1),transparent 65%);overflow:hidden}.contact-title{font-family:var(--font-tag);font-size:clamp(2.6rem,9vw,8rem);font-weight:400;text-transform:uppercase;line-height:1;transform:rotate(-2deg);transform-origin:left center;margin-bottom:clamp(2.5rem,6vh,4rem)}.contact-title a{display:inline-block;position:relative;transition:color .3s}.contact-title a:after{content:"";position:absolute;left:0;bottom:.02em;width:100%;height:.07em;background:var(--accent);border-radius:999px;transform:scaleX(0) rotate(-1deg);transform-origin:left;transition:transform .45s cubic-bezier(.16,1,.3,1)}.contact-title a:hover{color:var(--accent)}.contact-title a:hover:after{transform:scaleX(1) rotate(-1deg)}.contact-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;color:var(--ink-faint)}.contact-links{display:flex;gap:1.75rem}.contact-links a{color:var(--ink-dim);transition:color .25s}.contact-links a:hover{color:var(--accent)}