.hero[data-astro-cid-bbe6dxrz]{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:calc(var(--header-h) + 32px);padding-bottom:80px;overflow:hidden}.hero__rain[data-astro-cid-bbe6dxrz]{position:absolute;inset:0;width:100%;height:100%;opacity:.22;z-index:-1;mask-image:radial-gradient(ellipse at 70% 40%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000 20%,transparent 75%)}.hero__rain[data-astro-cid-bbe6dxrz].is-boost{opacity:.7;mask-image:none;-webkit-mask-image:none}.hero__grid[data-astro-cid-bbe6dxrz]{display:grid;gap:clamp(36px,6vw,72px);align-items:center;grid-template-columns:1fr}.prompt[data-astro-cid-bbe6dxrz]{color:var(--muted);margin-bottom:.4rem}.hero__hello[data-astro-cid-bbe6dxrz]{font:700 clamp(.9rem,1.6vw,1.15rem) var(--font-mono);color:var(--accent-2);letter-spacing:.08em;margin-bottom:.5rem}.glitch[data-astro-cid-bbe6dxrz]{position:relative;font-size:clamp(2.7rem,9vw,6.6rem);font-weight:700;line-height:.95;letter-spacing:-.04em;margin-bottom:.35em;text-wrap:balance}.glitch[data-astro-cid-bbe6dxrz]:before,.glitch[data-astro-cid-bbe6dxrz]:after{content:attr(data-text);position:absolute;inset:0;pointer-events:none}.glitch[data-astro-cid-bbe6dxrz]:before{color:var(--accent-3);transform:translate(-2px);clip-path:inset(0 0 100% 0);animation:glitch-a 3.8s infinite steps(1);mix-blend-mode:screen}.glitch[data-astro-cid-bbe6dxrz]:after{color:var(--accent-2);transform:translate(2px);clip-path:inset(100% 0 0 0);animation:glitch-b 3.8s infinite steps(1);mix-blend-mode:screen}@keyframes glitch-a{0%,86%,to{clip-path:inset(0 0 100% 0)}87%{clip-path:inset(10% 0 60% 0);transform:translate(-6px,1px)}89%{clip-path:inset(55% 0 20% 0);transform:translate(5px,-1px)}91%{clip-path:inset(30% 0 45% 0);transform:translate(-3px)}}@keyframes glitch-b{0%,87%,to{clip-path:inset(100% 0 0 0)}88%{clip-path:inset(70% 0 5% 0);transform:translate(6px)}90%{clip-path:inset(5% 0 75% 0);transform:translate(-5px,1px)}92%{clip-path:inset(40% 0 35% 0);transform:translate(3px,-1px)}}.hero__stack[data-astro-cid-bbe6dxrz]{font-size:clamp(1.1rem,2.6vw,1.7rem);font-weight:700;margin-bottom:.3rem;min-height:1.6em}.hero__stack[data-astro-cid-bbe6dxrz] .muted[data-astro-cid-bbe6dxrz]{color:var(--muted);font-weight:400;margin-right:.5ch}.typed[data-astro-cid-bbe6dxrz]{color:var(--accent);text-shadow:var(--glow)}.caret[data-astro-cid-bbe6dxrz]{color:var(--accent);margin-left:2px;font-weight:400}.hero__desc[data-astro-cid-bbe6dxrz]{font-size:clamp(1rem,1.8vw,1.25rem);color:var(--fg);margin-bottom:2rem}.hero__cta[data-astro-cid-bbe6dxrz]{display:flex;flex-wrap:wrap;gap:12px}.hero__photo[data-astro-cid-bbe6dxrz]{margin:0;max-width:440px;width:100%;justify-self:center;transform:rotate(1.5deg);transition:transform .4s}.hero__photo[data-astro-cid-bbe6dxrz]:hover{transform:rotate(0)}.photo[data-astro-cid-bbe6dxrz]{position:relative;aspect-ratio:1;overflow:hidden}.photo[data-astro-cid-bbe6dxrz] img[data-astro-cid-bbe6dxrz]{width:100%;height:100%;object-fit:cover}.photo__pxl[data-astro-cid-bbe6dxrz]{position:absolute;inset:0;opacity:0;transition:opacity .15s steps(3);image-rendering:pixelated}.hero__photo[data-astro-cid-bbe6dxrz]:hover .photo__pxl[data-astro-cid-bbe6dxrz]{opacity:1}.photo__scan[data-astro-cid-bbe6dxrz]{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 0%,rgba(var(--accent-rgb),.18) 50%,transparent 100%);height:30%;animation:scan 4s linear infinite;mix-blend-mode:screen}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(400%)}}.corner[data-astro-cid-bbe6dxrz]{position:absolute;width:22px;height:22px;border:2px solid var(--accent)}.corner[data-astro-cid-bbe6dxrz].tl{top:10px;left:10px;border-right:0;border-bottom:0}.corner[data-astro-cid-bbe6dxrz].br{bottom:10px;right:10px;border-left:0;border-top:0}.hero__photo[data-astro-cid-bbe6dxrz] figcaption[data-astro-cid-bbe6dxrz]{font-size:.75rem;color:var(--dim);padding:8px 14px;border-top:1px solid var(--border)}.hero__scroll[data-astro-cid-bbe6dxrz]{position:absolute;left:50%;bottom:20px;transform:translate(-50%);font-size:.78rem;color:var(--muted);letter-spacing:.15em;text-transform:uppercase}@media(min-width:900px){.hero__grid[data-astro-cid-bbe6dxrz]{grid-template-columns:1.35fr 1fr}.hero__photo[data-astro-cid-bbe6dxrz]{justify-self:end}}@media(max-width:899px){.hero__photo[data-astro-cid-bbe6dxrz]{max-width:min(260px,68vw);order:-1}.hero__scroll[data-astro-cid-bbe6dxrz]{display:none}}.about__grid[data-astro-cid-v2cbyr3p]{display:grid;gap:clamp(32px,5vw,64px);align-items:start}.about__text[data-astro-cid-v2cbyr3p] h3[data-astro-cid-v2cbyr3p]{font-size:clamp(1.6rem,3.4vw,2.5rem)}.lead[data-astro-cid-v2cbyr3p]{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--fg);max-width:60ch}.counter[data-astro-cid-v2cbyr3p]{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:0 12px;margin-top:2.2rem}.counter__num[data-astro-cid-v2cbyr3p]{font:400 clamp(6rem,16vw,10rem)/.8 var(--font-pixel);color:transparent;-webkit-text-stroke:1px var(--accent);text-shadow:0 0 30px rgba(var(--accent-rgb),.4)}.counter__plus[data-astro-cid-v2cbyr3p]{font:400 clamp(3rem,7vw,5rem)/1 var(--font-pixel);color:var(--accent);align-self:start}.counter__label[data-astro-cid-v2cbyr3p]{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.85rem;max-width:12ch}.nf-cmd[data-astro-cid-v2cbyr3p]{color:var(--muted);margin-bottom:1rem}.nf[data-astro-cid-v2cbyr3p]{display:grid;gap:20px}.nf__logo[data-astro-cid-v2cbyr3p]{margin:0;color:var(--accent);text-shadow:var(--glow);font-size:clamp(10px,1.6vw,13px);line-height:1.2}.nf__info[data-astro-cid-v2cbyr3p]{margin:0;font-size:.9rem;min-width:0}.nf__title[data-astro-cid-v2cbyr3p]{font-weight:700;color:var(--muted)}.nf__title[data-astro-cid-v2cbyr3p] .c2[data-astro-cid-v2cbyr3p]{color:var(--accent-2)}.nf__rule[data-astro-cid-v2cbyr3p]{color:var(--dim)}.nf__row[data-astro-cid-v2cbyr3p] dt[data-astro-cid-v2cbyr3p]{display:inline;color:var(--accent);font-weight:700;text-transform:lowercase;margin-right:1ch}.nf__row[data-astro-cid-v2cbyr3p] dt[data-astro-cid-v2cbyr3p]:after{content:":";color:var(--muted)}.nf__row[data-astro-cid-v2cbyr3p] dd[data-astro-cid-v2cbyr3p]{display:inline;margin:0;color:var(--fg);overflow-wrap:anywhere}.nf__colors[data-astro-cid-v2cbyr3p]{display:flex;gap:0;margin-top:12px}.nf__colors[data-astro-cid-v2cbyr3p] i[data-astro-cid-v2cbyr3p]{width:22px;height:14px;background:var(--c);display:block}@media(min-width:560px){.nf[data-astro-cid-v2cbyr3p]{grid-template-columns:auto 1fr}}@media(min-width:980px){.about__grid[data-astro-cid-v2cbyr3p]{grid-template-columns:1fr 1.05fr}}.studies__grid[data-astro-cid-n5hsksmm]{list-style:none;margin:0;padding:0;display:grid;gap:20px}.study[data-astro-cid-n5hsksmm]{position:relative;padding:clamp(20px,3vw,32px);background:var(--surface);border:1px solid var(--border);border-radius:10px;transition:border-color .3s,transform .3s,box-shadow .3s}.study[data-astro-cid-n5hsksmm]:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,var(--accent),transparent 40%,transparent 60%,var(--accent-2));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s}.study[data-astro-cid-n5hsksmm]:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(var(--accent-rgb),.5)}.study[data-astro-cid-n5hsksmm]:hover:before{opacity:1}.study__top[data-astro-cid-n5hsksmm]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.4rem}.study__idx[data-astro-cid-n5hsksmm]{font:400 3.4rem/.8 var(--font-pixel);color:var(--accent);text-shadow:var(--glow)}.study__hash[data-astro-cid-n5hsksmm]{font-size:.75rem;color:var(--warn)}.study[data-astro-cid-n5hsksmm] h3[data-astro-cid-n5hsksmm]{font-size:clamp(1.15rem,2vw,1.4rem);min-height:2.4em}.study[data-astro-cid-n5hsksmm] ul[data-astro-cid-n5hsksmm]{list-style:none;padding:0;margin:0;color:var(--muted);display:grid;gap:4px;font-size:.9rem}.study[data-astro-cid-n5hsksmm] ul[data-astro-cid-n5hsksmm] span[data-astro-cid-n5hsksmm]{color:var(--accent)}@media(min-width:700px){.studies__grid[data-astro-cid-n5hsksmm]{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.studies__grid[data-astro-cid-n5hsksmm]{grid-template-columns:repeat(3,1fr)}}.langs__grid[data-astro-cid-dysxeeoh]{display:grid;gap:clamp(40px,6vw,80px)}.langs__col[data-astro-cid-dysxeeoh] h3[data-astro-cid-dysxeeoh]{font-size:clamp(1.3rem,2.4vw,1.8rem);display:flex;align-items:baseline;gap:.5ch}.serial[data-astro-cid-dysxeeoh]{font:500 .75em var(--font-mono);color:var(--dim)}.hint[data-astro-cid-dysxeeoh]{color:var(--muted);font-size:.9rem}.rings[data-astro-cid-dysxeeoh]{display:flex;flex-wrap:wrap;gap:clamp(20px,5vw,48px);margin-top:1.5rem}.ring[data-astro-cid-dysxeeoh]{position:relative;width:clamp(130px,30vw,170px);display:grid;justify-items:center;gap:12px}.ring[data-astro-cid-dysxeeoh] svg[data-astro-cid-dysxeeoh]{width:100%;transform:rotate(-90deg);overflow:visible}.ring[data-astro-cid-dysxeeoh] circle[data-astro-cid-dysxeeoh]{fill:none;stroke-width:6}.ring__track[data-astro-cid-dysxeeoh]{stroke:var(--surface-2)}.ring__bar[data-astro-cid-dysxeeoh]{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.6));transition:stroke-dashoffset 1.6s cubic-bezier(.2,.7,.2,1) .2s}.is-in[data-astro-cid-dysxeeoh] .ring__bar[data-astro-cid-dysxeeoh],html:not(.js) .ring__bar[data-astro-cid-dysxeeoh]{stroke-dashoffset:calc(100 - var(--v))}.ring__value[data-astro-cid-dysxeeoh]{position:absolute;top:0;left:0;right:0;aspect-ratio:1;display:grid;place-items:center;font:400 clamp(2.4rem,6vw,3.2rem) var(--font-pixel);color:var(--fg-strong)}.ring__label[data-astro-cid-dysxeeoh]{border:1px solid var(--border-strong);border-radius:999px;padding:4px 16px;font-size:.85rem;color:var(--fg)}.bars[data-astro-cid-dysxeeoh]{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:18px}.bar[data-astro-cid-dysxeeoh]{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:.85rem}.bar__label[data-astro-cid-dysxeeoh]{color:var(--fg);text-transform:uppercase;letter-spacing:.04em}.bar__pct[data-astro-cid-dysxeeoh]{grid-row:1;grid-column:2;color:var(--accent);font-weight:700;text-align:right}.bar__ascii[data-astro-cid-dysxeeoh]{grid-column:1 / -1;color:var(--dim);white-space:nowrap;overflow:hidden;font-size:clamp(.8rem,2.6vw,1rem)}.bar__track[data-astro-cid-dysxeeoh]{position:relative;display:inline-block}.bar__fill[data-astro-cid-dysxeeoh]{position:absolute;left:0;top:0;color:var(--accent);text-shadow:var(--glow);overflow:hidden;white-space:nowrap}.js[data-astro-cid-dysxeeoh] .bar__fill[data-astro-cid-dysxeeoh]{max-width:0;transition:max-width 1.4s steps(var(--n)) .3s}.js[data-astro-cid-dysxeeoh] .is-in[data-astro-cid-dysxeeoh] .bar__fill[data-astro-cid-dysxeeoh]{max-width:calc(var(--n) * 1ch)}@media(min-width:900px){.langs__grid[data-astro-cid-dysxeeoh]{grid-template-columns:1fr 1fr}}.timeline[data-astro-cid-xpq65ryk]{list-style:none;margin:0 0 48px;padding:0;position:relative;max-width:880px}.timeline[data-astro-cid-xpq65ryk]:before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--accent),var(--accent-2) 60%,var(--border));opacity:.6}.commit[data-astro-cid-xpq65ryk]{position:relative;padding:0 0 clamp(32px,4vw,48px) 44px}.commit__node[data-astro-cid-xpq65ryk]{position:absolute;left:0;top:0;width:24px;text-align:center;color:var(--accent);background:var(--bg);line-height:1.5;font-size:1rem;text-shadow:var(--glow)}.commit__meta[data-astro-cid-xpq65ryk]{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.82rem;margin-bottom:6px}.commit__hash[data-astro-cid-xpq65ryk]{color:var(--warn)}.commit__head[data-astro-cid-xpq65ryk]{color:var(--accent-2);font-weight:700}.commit__date[data-astro-cid-xpq65ryk]{color:var(--muted)}.commit[data-astro-cid-xpq65ryk] h3[data-astro-cid-xpq65ryk]{font-size:clamp(1.2rem,2.6vw,1.75rem);margin-bottom:8px}.commit[data-astro-cid-xpq65ryk] h3[data-astro-cid-xpq65ryk] a[data-astro-cid-xpq65ryk]{color:inherit}.commit[data-astro-cid-xpq65ryk] h3[data-astro-cid-xpq65ryk] a[data-astro-cid-xpq65ryk] span[data-astro-cid-xpq65ryk],.commit[data-astro-cid-xpq65ryk] h3[data-astro-cid-xpq65ryk] a[data-astro-cid-xpq65ryk]:hover{color:var(--accent)}.commit[data-astro-cid-xpq65ryk] p[data-astro-cid-xpq65ryk]{color:var(--fg);opacity:.85;max-width:65ch;margin:0}.commit--root[data-astro-cid-xpq65ryk]{padding-bottom:0;color:var(--dim)}.commit--root[data-astro-cid-xpq65ryk] .commit__node[data-astro-cid-xpq65ryk]{color:var(--dim);text-shadow:none}.commit--root[data-astro-cid-xpq65ryk] .commit__meta[data-astro-cid-xpq65ryk]{color:var(--dim)}.projects__grid[data-astro-cid-amng4zvp]{list-style:none;margin:0;padding:0;display:grid;gap:24px}.project[data-astro-cid-amng4zvp]{position:relative;display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .35s}.project[data-astro-cid-amng4zvp]:hover{transform:translateY(-6px);border-color:rgba(var(--accent-rgb),.6);box-shadow:0 24px 60px -30px rgba(var(--accent-rgb),.55)}.project__media[data-astro-cid-amng4zvp]{display:block;aspect-ratio:3 / 2;overflow:hidden;background:var(--surface-2);position:relative}.project__media[data-astro-cid-amng4zvp]:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(6,8,10,.7)),repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 1px,transparent 1px 3px);pointer-events:none}.project__media[data-astro-cid-amng4zvp] img[data-astro-cid-amng4zvp]{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .6s,filter .4s;filter:saturate(.85)}.project[data-astro-cid-amng4zvp]:hover .project__media[data-astro-cid-amng4zvp] img[data-astro-cid-amng4zvp]{transform:scale(1.05);filter:saturate(1.1)}.project__body[data-astro-cid-amng4zvp]{padding:20px clamp(18px,2.5vw,24px) 24px;display:flex;flex-direction:column;flex:1}.project__cat[data-astro-cid-amng4zvp]{font-size:.78rem;color:var(--accent-2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}.project[data-astro-cid-amng4zvp] h3[data-astro-cid-amng4zvp]{font-size:1.5rem;margin-bottom:10px}.project[data-astro-cid-amng4zvp] h3[data-astro-cid-amng4zvp] a[data-astro-cid-amng4zvp]{color:var(--fg-strong)}.project[data-astro-cid-amng4zvp] h3[data-astro-cid-amng4zvp] a[data-astro-cid-amng4zvp]:after{content:"";position:absolute;inset:0;z-index:1}.project[data-astro-cid-amng4zvp] h3[data-astro-cid-amng4zvp] a[data-astro-cid-amng4zvp]:hover{text-shadow:none}.project__desc[data-astro-cid-amng4zvp]{color:var(--fg);opacity:.8;font-size:.9rem;flex:1}.project__foot[data-astro-cid-amng4zvp]{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.project__tags[data-astro-cid-amng4zvp]{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.project__open[data-astro-cid-amng4zvp]{font-size:.85rem;color:var(--accent);font-weight:700}@media(min-width:700px){.projects__grid[data-astro-cid-amng4zvp]{grid-template-columns:repeat(2,1fr)}}@media(min-width:1080px){.projects__grid[data-astro-cid-amng4zvp]{grid-template-columns:repeat(3,1fr)}}.more[data-astro-cid-b4mpjmb3]{margin-top:32px}.contact__grid[data-astro-cid-xmivup5a]{display:grid;gap:clamp(32px,5vw,64px);align-items:start}.contact__info[data-astro-cid-xmivup5a] dl[data-astro-cid-xmivup5a]{margin:0;display:grid;gap:22px}.contact__info[data-astro-cid-xmivup5a] dt[data-astro-cid-xmivup5a]{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.contact__info[data-astro-cid-xmivup5a] dt[data-astro-cid-xmivup5a]:before{content:"# ";color:var(--dim)}.contact__info[data-astro-cid-xmivup5a] dd[data-astro-cid-xmivup5a]{margin:4px 0 0;font-size:clamp(1.05rem,2.2vw,1.35rem);font-weight:700;color:var(--fg-strong);overflow-wrap:anywhere}.socials[data-astro-cid-xmivup5a]{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.95rem}.field[data-astro-cid-xmivup5a]{display:block;margin-bottom:18px}.field[data-astro-cid-xmivup5a] span[data-astro-cid-xmivup5a]{display:block;font-size:.85rem;color:var(--muted);margin-bottom:6px}.field[data-astro-cid-xmivup5a] b[data-astro-cid-xmivup5a]{color:var(--accent)}.field[data-astro-cid-xmivup5a] input[data-astro-cid-xmivup5a],.field[data-astro-cid-xmivup5a] textarea[data-astro-cid-xmivup5a]{width:100%;font:1rem var(--font-mono);color:var(--fg-strong);caret-color:var(--accent);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;transition:border-color .2s,box-shadow .2s}.field[data-astro-cid-xmivup5a] textarea[data-astro-cid-xmivup5a]{resize:vertical;min-height:130px}.field[data-astro-cid-xmivup5a] input[data-astro-cid-xmivup5a]::placeholder,.field[data-astro-cid-xmivup5a] textarea[data-astro-cid-xmivup5a]::placeholder{color:var(--dim)}.field[data-astro-cid-xmivup5a] input[data-astro-cid-xmivup5a]:focus,.field[data-astro-cid-xmivup5a] textarea[data-astro-cid-xmivup5a]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.15)}.form__foot[data-astro-cid-xmivup5a]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.status[data-astro-cid-xmivup5a]{margin:0;font-size:.9rem;min-height:1.4em}.status[data-astro-cid-xmivup5a].ok{color:var(--accent)}.status[data-astro-cid-xmivup5a].err{color:var(--danger)}@media(min-width:900px){.contact__grid[data-astro-cid-xmivup5a]{grid-template-columns:.8fr 1.2fr}}
