@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");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}:root{--ink:#16171b;--lime:#cee43a;--lime-hover:#d8e965;--leaf:#6abd55;--bg:#0f1013;--surface:#16171b;--surface-2:#1c1d22;--line:#2a2c33;--text:#e2e3e8;--muted:#9a9ca6;--accent:#cee43a;--comment:#6abd55;--logo-chip:#e9eae4;--header:#0f1013b8;--shadow:0 16px 40px -18px #000c;--dot:#e2e3e812;--glow-lime:#cee43a1c;--glow-leaf:#6abd5517;color-scheme:dark;--font:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--step--2:.8125rem;--step--1:.875rem;--step-0:1.0625rem;--step-1:1.25rem;--step-2:clamp(1.6rem, 1.2rem + 1.6vw, 2.25rem);--step-hero:clamp(2.1rem, 1.3rem + 3.2vw, 3.5rem);--radius:12px;--radius-sm:8px;--radius-xs:6px;--radius-focus:4px;--focus-width:2px;--focus-offset:3px;--hairline:1px;--dur-fast:.2s;--dur:.25s;--ease-out:cubic-bezier(.2, .7, .2, 1);--lift:-3px;--lift-sm:-2px;--wrap:64rem;--gutter:clamp(1rem, 4vw, 2.5rem)}:root[data-theme=light]{--bg:#f6f7f8;--surface:#fcfcfd;--surface-2:#f0f1f3;--line:#e1e3e8;--text:#16171b;--muted:#565963;--accent:#3f7414;--comment:#3f7414;--logo-chip:#fcfcfd;--header:#f6f7f8bf;--shadow:0 14px 34px -16px #16171b38;--dot:#16171b1f;--glow-lime:#cee43a33;--glow-leaf:#6abd551a;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-property:color,background-color,border-color,text-decoration-color,opacity,box-shadow!important;animation:none!important}}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--step-0);font-feature-settings:"liga" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}:focus-visible{outline:var(--focus-width) solid var(--accent);outline-offset:var(--focus-offset);border-radius:var(--radius-focus)}::selection{background:var(--lime);color:var(--ink)}.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.mono{font-family:var(--mono);font-feature-settings:"liga" 0, "tnum" 1}.comment{color:var(--comment)}.prompt{color:var(--accent)}.underline{text-decoration:underline;text-decoration-color:var(--line);text-decoration-thickness:var(--hairline);text-underline-offset:.25em;transition:text-decoration-color var(--dur-fast) ease}.underline:hover{text-decoration-color:var(--accent)}.card{border-radius:var(--radius);background:var(--surface);box-shadow:0 0 0 var(--hairline) var(--line);transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) ease}@media (hover:hover){.card:hover{box-shadow:0 0 0 var(--hairline) color-mix(in srgb, var(--accent) 50%, var(--line)), var(--shadow)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.card:hover{transform:translateY(var(--lift))}}.button{border-radius:var(--radius-sm);min-height:2.75rem;transition:background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease, transform var(--dur-fast) ease;justify-content:center;align-items:center;gap:.6rem;padding:.75rem 1.2rem;font-weight:550;display:inline-flex}.button-primary{background:var(--lime);color:var(--ink)}.button-primary:hover{background:var(--lime-hover)}.button-secondary{background:var(--surface);color:var(--text);box-shadow:0 0 0 var(--hairline) var(--line)}.button-secondary:hover{box-shadow:0 0 0 var(--hairline) color-mix(in srgb, var(--accent) 60%, var(--line))}@media (hover:hover) and (prefers-reduced-motion:no-preference){.button:hover{transform:translateY(var(--lift-sm))}}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tags li{border-radius:var(--radius-xs);background:var(--surface-2);box-shadow:0 0 0 var(--hairline) var(--line);color:var(--muted);font-family:var(--mono);padding:.15rem .5rem;font-size:.75rem;line-height:1.6}.toggle[data-astro-cid-l6lhmie6]{border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;box-shadow:0 0 0 var(--hairline) var(--line);color:var(--muted);cursor:pointer;transition:color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;background:0 0;border:0;place-items:center;padding:0;display:inline-grid}@media (pointer:coarse){.toggle[data-astro-cid-l6lhmie6]{width:2.75rem;height:2.75rem}}.toggle[data-astro-cid-l6lhmie6]:hover{color:var(--text);box-shadow:0 0 0 var(--hairline) var(--muted)}.moon[data-astro-cid-l6lhmie6],:root[data-theme=light] .sun[data-astro-cid-l6lhmie6]{display:none}:root[data-theme=light] .moon[data-astro-cid-l6lhmie6]{display:block}.backdrop[data-astro-cid-nlnhp4nu]{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.backdrop[data-astro-cid-nlnhp4nu]:before{content:"";background-image:radial-gradient(var(--dot) 1px, transparent 1.5px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(75% 55% at 70% 0,#000 10%,#0000 75%);mask-image:radial-gradient(75% 55% at 70% 0,#000 10%,#0000 75%)}.backdrop[data-astro-cid-nlnhp4nu]:after{content:"";background:radial-gradient(circle closest-side at 44% 44%, var(--glow-lime), transparent), radial-gradient(circle closest-side at 58% 58%, var(--glow-leaf), transparent);width:70vmax;height:70vmax;position:absolute;top:-28vmax;right:-18vmax}@media (prefers-reduced-motion:no-preference){.backdrop[data-astro-cid-nlnhp4nu]:after{animation:28s ease-in-out infinite alternate drift}}@keyframes drift{to{transform:translate(-8vmax,6vmax)rotate(25deg)}}.project[data-astro-cid-y2vllrex]{gap:1.25rem 2.5rem;padding:clamp(1.1rem,3vw,1.25rem) clamp(1.15rem,3.5vw,1.4rem);display:grid}.body[data-astro-cid-y2vllrex]{align-content:start;gap:.5rem;display:grid}.body[data-astro-cid-y2vllrex]>p[data-astro-cid-y2vllrex],.points[data-astro-cid-y2vllrex]{max-width:33em}.title[data-astro-cid-y2vllrex].lead{font-size:var(--step-1);letter-spacing:-.02em}.title-link[data-astro-cid-y2vllrex]{flex-wrap:wrap;align-items:center;gap:.35rem;margin-block:-.6rem;padding-block:.6rem;display:inline-flex}.title-link[data-astro-cid-y2vllrex] svg{color:var(--muted);transition:color var(--dur-fast) ease, transform var(--dur-fast) ease}.title-link[data-astro-cid-y2vllrex]:hover svg{color:var(--accent);transform:translate(.125rem,-.125rem)}.points[data-astro-cid-y2vllrex]{gap:.45rem;margin-block:.15rem .1rem;display:grid}.points[data-astro-cid-y2vllrex] li[data-astro-cid-y2vllrex]{color:var(--muted);padding-left:1.15rem;position:relative}.points[data-astro-cid-y2vllrex] li[data-astro-cid-y2vllrex]:before{content:"+";font-family:var(--mono);color:var(--comment);position:absolute;left:0}.outcome[data-astro-cid-y2vllrex]{color:var(--accent);font-weight:550}.outcome-link[data-astro-cid-y2vllrex]{text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-decoration-thickness:var(--hairline);text-underline-offset:.25em;transition:text-decoration-color var(--dur-fast) ease;padding-block:.5rem}.outcome-link[data-astro-cid-y2vllrex]:hover{text-decoration-color:var(--accent)}.outcome-link[data-astro-cid-y2vllrex] svg{vertical-align:-.15em;transition:transform var(--dur-fast) ease;margin-left:.3rem}.outcome-link[data-astro-cid-y2vllrex]:hover svg{transform:translate(.125rem,-.125rem)}.nowrap[data-astro-cid-y2vllrex]{white-space:nowrap}.tags[data-astro-cid-y2vllrex]{margin-top:.25rem}.demo[data-astro-cid-y2vllrex]{margin-top:.5rem}.demo[data-astro-cid-y2vllrex] svg{color:var(--muted)}.media[data-astro-cid-y2vllrex]{border-radius:var(--radius-sm);background:var(--surface-2);box-shadow:0 0 0 var(--hairline) var(--line);place-items:center;margin:0;padding:clamp(1rem,4vw,1.75rem);display:grid}.media[data-astro-cid-y2vllrex] img[data-astro-cid-y2vllrex]{width:100%;max-width:18rem;height:auto}@media (width>=52rem){.has-media[data-astro-cid-y2vllrex]{grid-template-columns:minmax(0,33em) minmax(0,1fr)}}.muted[data-astro-cid-lcdefpme]{color:var(--muted)}.small[data-astro-cid-lcdefpme]{font-size:var(--step--1)}.accent-icon[data-astro-cid-lcdefpme]{color:var(--accent);flex:none}.site-header[data-astro-cid-lcdefpme]{z-index:10;background:var(--header);backdrop-filter:blur(14px)saturate(1.4);box-shadow:0 var(--hairline) 0 color-mix(in srgb, var(--line) 80%, transparent);position:sticky;top:0}.top[data-astro-cid-lcdefpme]{justify-content:space-between;align-items:center;gap:1rem;padding-block:.5rem;display:flex}.brand-wrap[data-astro-cid-lcdefpme]{align-items:center;display:flex}.brand[data-astro-cid-lcdefpme]{letter-spacing:-.01em;align-items:center;gap:.7rem;padding-block:.375rem;font-weight:600;display:inline-flex}.brand[data-astro-cid-lcdefpme] img[data-astro-cid-lcdefpme]{border-radius:var(--radius-sm)}.secret[data-astro-cid-lcdefpme]{white-space:nowrap;background:color-mix(in srgb, var(--lime) 20%, transparent);max-width:0;color:var(--accent);opacity:0;transition:max-width .45s var(--ease-out), padding .45s var(--ease-out), margin .45s var(--ease-out), opacity var(--dur) ease, background-color var(--dur-fast) ease;border-radius:999px;margin-left:0;padding:.15rem 0;font-size:.75rem;font-weight:500;display:inline-block;overflow:hidden}.brand-wrap[data-astro-cid-lcdefpme]:hover .secret[data-astro-cid-lcdefpme],.brand[data-astro-cid-lcdefpme]:focus-visible+.secret[data-astro-cid-lcdefpme],.secret[data-astro-cid-lcdefpme]:focus-visible{opacity:1;max-width:10rem;margin-left:.75rem;padding-inline:.6rem}.secret[data-astro-cid-lcdefpme]:hover{background:color-mix(in srgb, var(--lime) 35%, transparent)}nav[data-astro-cid-lcdefpme]{font-size:var(--step--2);color:var(--muted);align-items:center;gap:.75rem;display:flex}nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme]{padding-block:.75rem}nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme]:hover,nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][aria-current]{color:var(--text)}nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][aria-current]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:var(--focus-width);text-underline-offset:.5em}.brand[data-astro-cid-lcdefpme] span[data-astro-cid-lcdefpme],.secret[data-astro-cid-lcdefpme],nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][href=\#services],nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][href=\#skills],nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][href=\#projects]{display:none}@media (width>=23rem){nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][href=\#services]{display:inline}}@media (width>=36rem){nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][href=\#projects]{display:inline}}@media (width>=30rem){nav[data-astro-cid-lcdefpme]{gap:1rem}nav[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme][href=\#skills]{display:inline}}@media (width>=44rem){.brand[data-astro-cid-lcdefpme] span[data-astro-cid-lcdefpme]{white-space:nowrap;display:inline}.secret[data-astro-cid-lcdefpme]{display:inline-block}nav[data-astro-cid-lcdefpme]{font-size:var(--step--1);gap:1rem}}@media (width>=48rem){nav[data-astro-cid-lcdefpme]{gap:1.5rem}}.hero[data-astro-cid-lcdefpme]{padding-block:clamp(3.5rem,11vw,8rem) clamp(3.5rem,9vw,6rem)}.prompt-line[data-astro-cid-lcdefpme]{font-size:var(--step--1);color:var(--muted);flex-wrap:wrap;align-items:center;gap:0 .6ch;margin-bottom:1.5rem;display:flex}.path[data-astro-cid-lcdefpme]{color:var(--comment)}.typed[data-astro-cid-lcdefpme]{white-space:nowrap;width:6ch;color:var(--text);display:inline-block;overflow:hidden}.cursor[data-astro-cid-lcdefpme]{background:var(--accent);width:.6em;height:1.15em;margin-left:.15ch;display:inline-block}h1[data-astro-cid-lcdefpme]{max-width:20em;font-size:var(--step-hero);letter-spacing:-.045em;text-wrap:balance;font-weight:600;line-height:1.06}.about[data-astro-cid-lcdefpme]{max-width:36rem;color:var(--muted);margin-top:1.5rem}.actions[data-astro-cid-lcdefpme]{flex-direction:column;align-items:stretch;gap:.75rem;margin-top:2.25rem;display:flex}@media (width>=30rem){.actions[data-astro-cid-lcdefpme]{flex-flow:wrap;align-items:center}}@media (prefers-reduced-motion:no-preference){.typed[data-astro-cid-lcdefpme]{animation:.55s steps(6,end) .2s both type}.cursor[data-astro-cid-lcdefpme]{animation:1s step-end .8s 5 blink}.hero[data-astro-cid-lcdefpme]>[data-astro-cid-lcdefpme]:not(.prompt-line){animation:rise .7s var(--ease-out) both}.hero[data-astro-cid-lcdefpme]>h1[data-astro-cid-lcdefpme]{animation-delay:.45s}.hero[data-astro-cid-lcdefpme]>.about[data-astro-cid-lcdefpme]{animation-delay:.55s}.hero[data-astro-cid-lcdefpme]>.actions[data-astro-cid-lcdefpme]{animation-delay:.65s}}@keyframes type{0%{width:0}}@keyframes blink{50%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(.6rem)}}.block[data-astro-cid-lcdefpme]{padding-block:clamp(3rem,7vw,5rem)}h2[data-astro-cid-lcdefpme]{font-size:var(--step-2);letter-spacing:-.035em;margin-bottom:2rem;font-weight:600;line-height:1.1}h2[data-astro-cid-lcdefpme] .comment[data-astro-cid-lcdefpme]{letter-spacing:0;vertical-align:.1em;font-size:.7em;font-weight:400}h3[data-astro-cid-lcdefpme],h4[data-astro-cid-lcdefpme]{font-size:var(--step-0);letter-spacing:-.01em;font-weight:600;line-height:1.35}.panel[data-astro-cid-lcdefpme]{border-radius:var(--radius);background:var(--surface);box-shadow:0 0 0 var(--hairline) var(--line);overflow:hidden}.panel-bar[data-astro-cid-lcdefpme]{background:var(--surface-2);box-shadow:0 var(--hairline) 0 var(--line);font-size:var(--step--2);color:var(--muted);align-items:center;gap:.9rem;padding:.7rem 1rem;display:flex}.dots[data-astro-cid-lcdefpme]{gap:.4rem;display:inline-flex}.dots[data-astro-cid-lcdefpme] i[data-astro-cid-lcdefpme]{background:var(--line);border-radius:50%;width:.65rem;height:.65rem}.svc[data-astro-cid-lcdefpme]{transition:background-color var(--dur-fast) ease;gap:1rem;padding:clamp(1.25rem,3.5vw,2rem);display:grid}.svc[data-astro-cid-lcdefpme]+.svc[data-astro-cid-lcdefpme]{box-shadow:0 calc(-1 * var(--hairline)) 0 var(--line)}@media (hover:hover){.svc[data-astro-cid-lcdefpme]:hover{background:color-mix(in srgb, var(--surface-2) 70%, transparent)}}.cmd[data-astro-cid-lcdefpme]{font-size:var(--step--2);color:var(--muted);overflow-wrap:anywhere}.svc-main[data-astro-cid-lcdefpme]{gap:.75rem;display:grid}.svc[data-astro-cid-lcdefpme] h3[data-astro-cid-lcdefpme]{font-size:var(--step-1);letter-spacing:-.02em;align-items:center;gap:.6rem;display:flex}.proof[data-astro-cid-lcdefpme]{font-size:var(--step--2);color:var(--comment);line-height:1.6}.includes[data-astro-cid-lcdefpme]{font-size:var(--step--1);align-content:start;gap:.5rem;display:grid}.includes[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme]{padding-left:1.25rem;position:relative}.includes[data-astro-cid-lcdefpme] li[data-astro-cid-lcdefpme]:before{content:"+";font-family:var(--mono);color:var(--comment);position:absolute;left:0}@media (width>=52rem){.svc[data-astro-cid-lcdefpme]{grid-template-columns:1.15fr 1fr;grid-template-areas:"cmd cmd""main list";column-gap:3rem}.cmd[data-astro-cid-lcdefpme]{grid-area:cmd}.svc-main[data-astro-cid-lcdefpme]{grid-area:main}.includes[data-astro-cid-lcdefpme]{grid-area:list;padding-top:.3rem}}.skills[data-astro-cid-lcdefpme]{gap:.75rem;display:grid}@media (width>=36rem){.skills[data-astro-cid-lcdefpme]{grid-template-columns:repeat(2,1fr)}}@media (width>=60rem){.skills[data-astro-cid-lcdefpme]{grid-template-columns:repeat(4,1fr)}}.skill[data-astro-cid-lcdefpme]{flex-direction:column;gap:.5rem;padding:clamp(1rem,2.5vw,1.15rem);display:flex}.skill[data-astro-cid-lcdefpme] h3[data-astro-cid-lcdefpme]{font-size:var(--step--1);align-items:center;gap:.5rem;display:flex}.skill[data-astro-cid-lcdefpme] .tags[data-astro-cid-lcdefpme]{margin-top:.35rem}.timeline[data-astro-cid-lcdefpme]{gap:clamp(2.75rem,6vw,3.5rem);display:grid}.place[data-astro-cid-lcdefpme]{gap:1.25rem 3rem;padding-left:1.75rem;display:grid;position:relative}.place[data-astro-cid-lcdefpme]:before{content:"";width:var(--hairline);background:var(--line);position:absolute;top:.9rem;bottom:calc(-1*clamp(2.75rem,6vw,3.5rem));left:.3rem}.place[data-astro-cid-lcdefpme]:last-child:before{bottom:0}.place[data-astro-cid-lcdefpme]:after{content:"";background:var(--bg);width:.65rem;height:.65rem;box-shadow:0 0 0 var(--focus-width) var(--line);border-radius:50%;position:absolute;top:.6rem;left:0}.place[data-astro-cid-lcdefpme].current:after{background:var(--lime);box-shadow:0 0 0 var(--focus-width) color-mix(in srgb, var(--lime) 35%, transparent), 0 0 1rem color-mix(in srgb, var(--lime) 45%, transparent)}.place-head[data-astro-cid-lcdefpme]{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem .9rem;display:grid}.metas[data-astro-cid-lcdefpme]{flex-wrap:wrap;grid-column:1/-1;gap:.3rem 1.1rem;display:flex}.meta[data-astro-cid-lcdefpme]{font-size:var(--step--1);align-items:center;gap:.5rem;display:flex}.meta[data-astro-cid-lcdefpme].mono{font-size:var(--step--2)}.meta[data-astro-cid-lcdefpme] svg{color:var(--muted);flex:none}.org-logo[data-astro-cid-lcdefpme]{border-radius:var(--radius-sm);background:var(--logo-chip);height:2.75rem;box-shadow:0 0 0 var(--hairline) var(--line);justify-content:center;align-items:center;padding-inline:.7rem;display:inline-flex}.org-logo[data-astro-cid-lcdefpme] img[data-astro-cid-lcdefpme]{display:block}@media (width>=23rem){.org-logo[data-astro-cid-lcdefpme]{min-width:7.25rem}}.place-head[data-astro-cid-lcdefpme] h3[data-astro-cid-lcdefpme]{font-size:var(--step-1);letter-spacing:-.02em}.org-link[data-astro-cid-lcdefpme]{flex-wrap:wrap;align-items:center;gap:.35rem;padding-block:.4rem;display:inline-flex}.org-link[data-astro-cid-lcdefpme] svg{color:var(--muted);transition:color var(--dur-fast) ease, transform var(--dur-fast) ease}.org-link[data-astro-cid-lcdefpme]:hover svg{color:var(--accent);transform:translate(.125rem,-.125rem)}@media (width>=52rem){.place[data-astro-cid-lcdefpme]{grid-template-columns:12rem minmax(0,1fr)}.place-head[data-astro-cid-lcdefpme]{grid-template-columns:1fr;align-self:start;gap:.35rem;position:sticky;top:6rem}.org-logo[data-astro-cid-lcdefpme]{justify-self:start;margin-bottom:.6rem}.place-head[data-astro-cid-lcdefpme] h3[data-astro-cid-lcdefpme]{margin-bottom:.25rem}.metas[data-astro-cid-lcdefpme]{gap:.35rem;display:grid}}.projects[data-astro-cid-lcdefpme]{gap:.75rem;display:grid}.contact[data-astro-cid-lcdefpme]{justify-items:start;gap:1rem;display:grid}.contact[data-astro-cid-lcdefpme] h2[data-astro-cid-lcdefpme]{letter-spacing:-.045em;margin-bottom:0;font-size:clamp(1.9rem,1.2rem + 2.6vw,3rem)}.contact[data-astro-cid-lcdefpme]>p[data-astro-cid-lcdefpme]{max-width:36rem}.mail-line[data-astro-cid-lcdefpme]{font-size:var(--step--1);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:0 .6ch;margin-top:.5rem;display:flex}.mail-line[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme]{color:var(--text);overflow-wrap:anywhere;padding-block:.6rem}.contact-actions[data-astro-cid-lcdefpme]{flex-direction:column;justify-self:stretch;align-items:stretch;gap:.6rem;display:flex}@media (width>=30rem){.contact-actions[data-astro-cid-lcdefpme]{flex-flow:wrap;justify-self:start;align-items:center}}.foot[data-astro-cid-lcdefpme]{font-size:var(--step--2);color:var(--muted);padding-block:2rem 3rem}
