.header[data-v-2779bc8b]{z-index:10;height:var(--header-height);background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1.5rem;padding:0 1.75rem;display:flex;position:sticky;top:0}.brand[data-v-2779bc8b]{white-space:nowrap;font-size:.9rem;font-weight:500}.nav[data-v-2779bc8b]{color:var(--text-muted);gap:1.5rem;font-size:.85rem;display:flex}.nav a[data-v-2779bc8b]:hover{color:var(--text)}.actions[data-v-2779bc8b]{align-items:center;gap:.5rem;display:flex}.lang[data-v-2779bc8b]{color:var(--text-muted);border:1px solid var(--border);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:.2rem .65rem;font-size:.85rem}.lang[data-v-2779bc8b]:hover{color:var(--text);border-color:var(--text-muted)}.menu-btn[data-v-2779bc8b]{color:var(--text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:.25rem;display:none}.menu-btn[data-v-2779bc8b]:hover{color:var(--text)}@media (width<=640px){.header[data-v-2779bc8b]{padding:0 1.25rem}.menu-btn[data-v-2779bc8b]{display:flex}.nav[data-v-2779bc8b]{background:var(--bg);border-bottom:1px solid var(--border);opacity:0;visibility:hidden;transition:opacity var(--motion-base) ease, transform var(--motion-base) ease, visibility var(--motion-base);flex-direction:column;gap:0;padding:.5rem 1.25rem .75rem;font-size:.95rem;position:absolute;top:100%;left:0;right:0;transform:translateY(-8px)}.nav.open[data-v-2779bc8b]{opacity:1;visibility:visible;transform:none}.is-switching{opacity:0}.nav a[data-v-2779bc8b]{padding:.7rem 0}}@media (prefers-reduced-motion:reduce){.nav[data-v-2779bc8b]{transition:none}}.hero[data-v-335157aa]{padding:3rem 0 1rem}.card[data-v-335157aa]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem}.card-header[data-v-335157aa]{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}h1[data-v-335157aa]{min-width:0;font-size:1.6rem;font-weight:500}.location[data-v-335157aa]{color:var(--text-muted);margin-top:.25rem;font-size:.85rem}.description[data-v-335157aa]{margin-top:.85rem}.links[data-v-335157aa]{color:var(--text-muted);flex-shrink:0;gap:.85rem;display:flex}.links a[data-v-335157aa]{display:flex}.links a[data-v-335157aa]:hover{color:var(--text)}.tech[data-v-c510ef51]{padding:2rem 0}h2[data-v-c510ef51]{margin-bottom:.85rem;font-size:1.15rem;font-weight:500}ul[data-v-c510ef51]{flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;display:flex}li[data-v-c510ef51]{border:1px solid var(--border);border-radius:6px;align-items:center;gap:.45rem;padding:.3rem .7rem;font-size:.85rem;display:flex}.links a[data-v-c510ef51]{display:flex}.links a[data-v-c510ef51]:hover{color:var(--text)}.about[data-v-86200b3b]{padding:2rem 0}h2[data-v-86200b3b]{margin-bottom:.85rem;font-size:1.15rem;font-weight:500}p[data-v-86200b3b]{color:var(--text-muted)}.projects[data-v-f5003a50]{padding:2rem 0}h2[data-v-f5003a50]{margin-bottom:.85rem;font-size:1.15rem;font-weight:500}.list[data-v-f5003a50]{gap:.85rem;display:grid}.card[data-v-f5003a50]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}h3[data-v-f5003a50]{font-size:1rem;font-weight:500}.description[data-v-f5003a50]{color:var(--text-muted);margin-top:.25rem;font-size:.9rem}.stack[data-v-f5003a50]{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;padding:0;font-size:.75rem;list-style:none;display:flex}.stack li[data-v-f5003a50]{border:1px solid var(--border);border-radius:5px;padding:.1rem .5rem}.links[data-v-f5003a50]{color:var(--text-muted);gap:.85rem;margin-top:.75rem;display:flex}.links a[data-v-f5003a50]{display:flex}.links a[data-v-f5003a50]:hover{color:var(--text)}.experience[data-v-a36f6df3]{padding:2rem 0}h2[data-v-a36f6df3]{margin-bottom:.85rem;font-size:1.15rem;font-weight:500}.empty[data-v-a36f6df3]{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-muted);padding:1rem;font-size:.9rem}.list[data-v-a36f6df3]{gap:.85rem;display:grid}.item[data-v-a36f6df3]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}h3[data-v-a36f6df3]{font-size:1rem;font-weight:500}.period[data-v-a36f6df3]{color:var(--text-muted);font-size:.8rem}.description[data-v-a36f6df3]{color:var(--text-muted);margin-top:.5rem;font-size:.9rem}.contact[data-v-8038c2e0]{padding:2rem 0 5rem}h2[data-v-8038c2e0]{margin-bottom:.85rem;font-size:1.15rem;font-weight:500}.text[data-v-8038c2e0]{color:var(--text-muted)}.links[data-v-8038c2e0]{flex-wrap:wrap;gap:1.25rem;margin-top:1rem;font-size:.9rem;display:flex}.links a[data-v-8038c2e0]{border-bottom:1px solid var(--border);align-items:center;gap:.45rem;display:flex}.links a[data-v-8038c2e0]:hover{border-color:var(--text)}.page[data-v-472022f0]{max-width:var(--content-width);margin:0 auto;padding:0 1.25rem}:root{--bg:#0a0a0a;--surface:#101010;--text:#f5f5f5;--text-muted:#9a9a9a;--border:#262626;--content-width:640px;--header-height:56px;--radius:10px;--border-hover:#4a4a4a;--motion-fast:.15s;--motion-base:.2s;--reveal-duration:.6s;--reveal-distance:12px;--switch-duration:.1s}*,:before,:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.hero{position:relative}a,button{transition:color var(--motion-fast) ease, border-color var(--motion-fast) ease, opacity var(--switch-duration) ease}.hoverable{transition:border-color var(--motion-base) ease, transform var(--motion-base) ease}.hoverable:hover{border-color:var(--border-hover);transform:translateY(-2px)}.tech ul{flex-wrap:wrap;gap:.5rem;padding:0;list-style:none;display:flex}.tech li{background:0 0;border:none;margin:0;padding:0}.cardtech{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.45rem;padding:.55rem .8rem;font-size:.85rem;display:flex}[data-reveal]{opacity:0;transform:translateY(var(--reveal-distance));transition:opacity var(--reveal-duration) ease, transform var(--reveal-duration) ease}[data-reveal].is-visible{opacity:1;transform:none}main,.nav{transition:opacity var(--switch-duration) ease}.is-switching main,.is-switching .nav,.is-switching .lang{opacity:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1;transition:none;transform:none}.hoverable:hover{transform:none}}
